Mike has discovered a new way to encode permutations. If he has a permutation *P* = [*p*<sub class="lower-index">1</sub>, *p*<sub class="lower-index">2</sub>, ..., *p*<sub class="lower-index">*n*</sub>], he will encode it in the following way:

Denote by *A* = [*a*<sub class="lower-index">1</sub>, *a*<sub class="lower-index">2</sub>, ..., *a*<sub class="lower-index">*n*</sub>] a sequence of length *n* which will represent the code of the permutation. For each *i* from 1 to *n* sequentially, he will choose the smallest unmarked *j* (1 ≤ *j* ≤ *n*) such that *p*<sub class="lower-index">*i*</sub> &lt; *p*<sub class="lower-index">*j*</sub> and will assign to *a*<sub class="lower-index">*i*</sub> the number *j* (in other words he performs *a*<sub class="lower-index">*i*</sub> = *j*) and will mark *j*. If there is no such *j*, he'll assign to *a*<sub class="lower-index">*i*</sub> the number  - 1 (he performs *a*<sub class="lower-index">*i*</sub> =  - 1). 

Mike forgot his original permutation but he remembers its code. Your task is simple: find any permutation such that its code is the same as the code of Mike's original permutation.

You may assume that there will always be at least one valid permutation.
The first line contains single integer *n* (1 ≤ *n* ≤ 500 000) — length of permutation.

The second line contains *n* space-separated integers *a*<sub class="lower-index">1</sub>, *a*<sub class="lower-index">2</sub>, ..., *a*<sub class="lower-index">*n*</sub> (1 ≤ *a*<sub class="lower-index">*i*</sub> ≤ *n* or *a*<sub class="lower-index">*i*</sub> =  - 1) — the code of Mike's permutation.

You may assume that all positive values from *A* are different.
For the permutation from the first example:

*i* = 1, the smallest *j* is 2 because *p*<sub class="lower-index">2</sub> = 6 &gt; *p*<sub class="lower-index">1</sub> = 2.

*i* = 2, there is no *j* because *p*<sub class="lower-index">2</sub> = 6 is the greatest element in the permutation.

*i* = 3, the smallest *j* is 1 because *p*<sub class="lower-index">1</sub> = 2 &gt; *p*<sub class="lower-index">3</sub> = 1.

*i* = 4, the smallest *j* is 5 (2 was already marked) because *p*<sub class="lower-index">5</sub> = 5 &gt; *p*<sub class="lower-index">4</sub> = 4.

*i* = 5, there is no *j* because 2 is already marked.

*i* = 6, the smallest *j* is 4 because *p*<sub class="lower-index">4</sub> = 4 &gt; *p*<sub class="lower-index">6</sub> = 3.
print("_RANDOM_GUESS_1689421423.6024435")# 1689421423.6024628