2017.8.17 ACM 训练赛

D. 最大的排列

单点时限: 2.0 sec

内存限制: 256 MB

对于任意一个有限项数列 $a_1, a_2, \ldots, a_n$,如果 $n \geq 2$ 且数列中的每一项都在 $[0, n-1]$ 范围内,那么就可以计算这个数列的权值 $w_{{a_i} }$ 为 $\sum_{i=1}^n a_i n^{n-i}$。例如 $0, 1$ $(n=2)$ 的权值是 $1$,$1, 2, 3, 0, 3$ $(n=5)$ 的权值就是 $1 \cdot 5^4 + 2 \cdot 5^3 + 3 \cdot 5^2 + 3 = 953$ 。

给出 $a_1, a_2, \ldots, a_n$,求 $b_1, b_2, \ldots, b_n$ 使得 $w_{{a_i} } \geq w_{{b_i} }$,且 $b_1, b_2, \ldots, b_n$ 恰好是 $0$ 到 $n-1$ 的一个全排列。

如果有多解,输出权值最大的一解。如果无解,输出 $-1$。

输入格式

第一行一个整数 $n$ $(2 \leq n \leq 5000)$。

第二行 $n$ 个整数,用空格隔开,表示 $a_1, a_2, \ldots, a_n$ $(0 \leq a_i \leq n - 1)$。

输出格式

输出用空格隔开的 $n$ 个整数,分别表示 $b_1, b_2, \ldots, b_n$。若无解,输出 $-1$。

样例

Input
4
1 2 3 0
Output
1 2 3 0
Input
5
1 2 3 0 3
Output
1 2 0 4 3
Input
5
0 0 0 0 0
Output
-1