/*
 * Copyright (c) 1999 Johnny C. Lam.
 * All rights reserved.
 *
 * Permission to use, copy, modify, distribute and sell this software
 * and its documentation for any purpose is hereby granted without fee,
 * provided that the above copyright notice appear in all copies and
 * that both that copyright notice and this permission notice appear
 * in supporting documentation.  The author makes no representations
 * about the suitability of this software for any purpose.  It is
 * provided "as is" without express or implied warranty.
 */

#include <iostream>
#include <iterator>
#include <string>
#include <dynamic_priority_queue>

int
main()
{
    dynamic_priority_queue<int, string> dpq;

    for (istream_iterator<string> i = istream_iterator<string>(cin);
	 i != istream_iterator<string>(); ++i) {
	dpq.push(make_pair(i->size(), *i));
    }

    dpq.change_priority("jumps", 1);
    dpq.change_priority("lazy", 99);

    while (!dpq.empty()) {
	cout << dpq.top().first << "\t" << dpq.top().second << endl;
	dpq.pop();
    }

    return 0;
}
