給定一個長度為 $N$ 的陣列 $a$。陣列中的每個元素要麼是 $-1$,要麼是 $1$ 到 $N$ 之間的整數。$1$ 到 $N$ 之間的每個數字在 $a$ 中最多出現一次。此外,陣列 $a$ 中沒有任何兩個相鄰元素的差的絕對值恰好為 $1$。
你需要找到一個 $\{1, 2, \dots, N\}$ 的排列 $p$,使其滿足以下條件,並要求該排列在字典序上最小:
- 若 $a_i \neq -1$,則 $a_i = p_i$ ($1 \leq i \leq N$);
- $|p_i - p_{i+1}| \neq 1$ ($1 \leq i \leq N - 1$)。
輸入格式
第一行包含一個整數 $N$。 第二行包含 $N$ 個以空格分隔的整數:陣列 $a$ 的元素。
- $1 \leq N \leq 200\,000$
- $1 \leq a_i \leq N$ 或 $a_i = -1$ ($1 \leq i \leq N$)
- $a_i \neq a_j$ 或 $a_i = -1$ ($1 \leq i < j \leq N$)
- $|a_i - a_{i+1}| \neq 1$ ($1 \leq i \leq N - 1$)
輸出格式
如果不存在滿足條件的排列 $p$,則輸出單個整數 $-1$。 否則,輸出字典序最小的排列 $p$。
範例
輸入 1
10 3 -1 10 -1 8 -1 -1 -1 -1 -1
輸出 1
3 1 10 2 8 4 6 9 5 7
輸入 2
2 -1 -1
輸出 2
-1