Мальчик Женя захотел посадить в саду яблоню. Однако его жизнь была достаточно необычной, поэтому в своём возрасте из всех деревьев он знал только двоичные деревья поиска.
Двоичное дерево — это корневое дерево, в котором у каждой вершины есть не более двух сыновей (их называют левым и правым сыном).
Двоичное дерево поиска — это двоичное дерево, в каждой вершине которого записано число $$$k$$$, называемое ключом вершины, при этом верно следующее свойство:
Женя придумал двоичное дерево поиска, ключами в котором является перестановка размера $$$n$$$. Однако сегодняшний вечер у Жени уже был занят: он планировал встретиться с друзьями в небезызвестном ресторане «Брёвна». Поэтому, чтобы не забыть дерево, Женя решил записать информацию о нём на листочек. Рисовать он не умел, поэтому придумал специальный метод шифрования, чтобы гарантированно вспомнить дерево после встречи с друзьями:
[language=Python]
def encode_tree(v):
if v is None:
return []
return [v.x] + encode_tree(v.left) + encode_tree(v.right)
Для приведённого дерева результат функции encode_tree будет $$$[4, 2, 1, 3, 5]$$$.
Однако Женя перехитрил сам себя: вернувшись домой вечером, он понял, что никак не может расшифровать написанные на листочке числа. Создание яблоневого сада под угрозой, поэтому вам требуется помочь Жене по заданной зашифрованной записи восстановить исходное дерево, либо же сообщить, что Женя что-то напутал, и по зашифрованной записи восстановить дерево невозможно.
В первой строке задано целое число $$$n$$$ ($$$1 \le n \le 300\,000$$$) — количество вершин в дереве.
Во второй строке задано $$$n$$$ целых чисел $$$k_i$$$ ($$$1 \le k_i \le n$$$) — результат выполнения функции encode_tree. Гарантируется, что массив $$$k_i$$$ — перестановка чисел от $$$1$$$ до $$$n$$$.
Если исходные данные противоречивы, и восстановить дерево невозможно, то выведите Impossible.
В противном случае выведите $$$n$$$ строк. В $$$i$$$-й строке выведите два числа: ключи левого и правого сына вершины с ключом $$$i$$$. Если левый или правый сын отсутствует, то выведите $$$-1$$$.
54 2 1 3 5
-1 -1 1 3 -1 -1 2 5 -1 -1
32 3 1
Impossible
74 2 1 3 6 5 7
-1 -1 1 3 -1 -1 2 6 -1 -1 5 7 -1 -1
31 2 3
-1 2 -1 3 -1 -1
Первый тест — это пример из условия.
Во втором тесте подходящего дерева не существует.
Третий тест:

Четвёртый тест:
