Майк открыл новый способ кодирования перестановок. Если у него есть перестановка P = [p1, p2, ..., pn], он закодирует ее следующим образом:
Пусть A = [a1, a2, ..., an] — последовательность длины n, которая будет представлять код перестановки. Для каждого i от 1 до n последовательно он будет выбирать наименьшее непомеченное j (1 ≤ j ≤ n) такое, что pi < pj и присвоит в ai число j (другими словами выполнит ai = j) и пометит j. Если такого j не существует, то он присвоит в ai число - 1 (он выполнит ai = - 1).
Майк забыл свою изначальную перестановку, но он помнит ее код. Ваша задача проста: найдите любую перестановку такую, что ее код такой же, как и код изначальной перестановки Майка.
Вы можете предположить, что всегда существует хотя бы одна перестановка.
Выходные данные
В первой и единственной строке выведите n чисел p1, p2, ..., pn (1 ≤ pi ≤ n) — перестановка P, которая имеет такой же код, что и данный. Заметьте, что числа в перестановке различны.
Примечание
Для перестановки из первого примера:
i = 1, наименьшее j равно 2, потому что p2 = 6 > p1 = 2.
i = 2, нет такого j, потому что p2 = 6 наибольший элемент в перестановке.
i = 3, наименьшее j равно 1 потому что p1 = 2 > p3 = 1.
i = 4, наименьшее j равно 5 (2 уже помечено), потому что p5 = 5 > p4 = 4.
i = 5, нет такого j, потому что 2 уже помечено.
i = 6, наименьшее j равно 4, потому что p4 = 4 > p6 = 3.
Примеры
| № | Входные данные | Выходные данные |
|
1
|
6 2 -1 1 5 -1 4
|
2 6 1 4 5 3
|
|
2
|
8 2 -1 4 -1 6 -1 8 -1
|
1 8 2 7 3 6 4 5
|