Задачі
Черга з пріоритетами
Черга з пріоритетами
Реалізуйте структуру "черга з пріоритетами", яка підтримує наступні операції:
\begin{enumerate}
\item Додавання елементу в чергу.
\item Видалення з черги елемента з найбільшим приорітетом.
\item Зміна приорітета для довільного елемента, який знаходиться у черзі.
\end{enumerate}
\InputFile
Програма отримує на вхід послідовність команд, по одній команді у кожному рядку. Загальне число команд не перевищує \textbf{30000}. Команда може мати один з наступних форматів:
\begin{itemize}
\item \textbf{ADD id priority} - додати в чергу новый елемент з ідентифікатором \textbf{id} та приорітетом \textbf{priority}. Гарантується, що в черзі немає елемента з таким ідентифікатором.
\item \textbf{POP} - видалити з черги елемент з найбільшим значенням приорітету. Якщо таких елементів декілька, то видаляється один (довільний) з них. Гарантується, що черга не порожня.
\item \textbf{CHANGE id new_priority} - змінити значення приорітету елемента з ідентифікатором \textbf{id} на значення \textbf{new_priority}. Гарантується, що в черзі є елемент з таким ідентифікатором.
\end{itemize}
Ідентифікатори елементів - рядки, які складаються з рядкових латинських букв не більше \textbf{10} символів. Ідентифікатори - довільні цілі числа.
На самому початку черга порожня.
\OutputFile
Для кожної команди типу \textbf{POP} виведіть ідентифікатор видаленого елементу, і, через пропуск, значення його приорітету.
Вхідні дані #1
ADD one 1 ADD two 2 ADD three 3 POP CHANGE one 5 POP POP
Вихідні дані #1
three 3 one 5 two 2