У цій задачі вам необхідно організувати структуру даних Heap для зберігання цілих чисел, над якою визначано наступні операції:
Insert(x) - додати в Heap x;
Exctract - дістати з Heap найбільше число (видаливши його при цьому).
Перший рядок містить кількість команд n (1 ≤ n ≤ 10^5
), потім послідовність з n команд, кожна у своєму рядку.
Кожна команда має такий формат: "0 число" або "1", що позначає відповідно операції Insert (число) та Extract. Числа, що додаються, знаходяться у інтервалі від 1 до 10^7
включно.
Гарантується, що при виконанні команди Extract у структурі знаходиться по меншій мірі один елемент.
Для кожної команди діставання виведіть число, отримане при виконанні команди Extract.