F. 最长上升子序列
time limit per test
2 s
memory limit per test
512 megabytes
input
standard input
output
standard output

你原本有一个 1n 的排列,但是不慎地,你遗忘了它,但是你记得以 第i个位置 结尾的最长上升子序列的长度数组 {an} ,现在希望你能够构造一个符合条件的排列 p ,如果不存在符合上述条件的排列 p ,则输出  - 1

这里定义以 第i位置 结尾的最长上升子序列的长度,为符合以下条件的整数数组 k 的最大值。

本题输入输出量比较大,请选手注意。

Input

第一行一个整数 n (1 ≤ n ≤ 106)

第二行 n 个整数表示数组 {an} (1 ≤ ai ≤ n),其中 ai 表示以 i 结尾的最长上升子序列的长度。

Output

一行 n 个整数表示排列 p ,如果无解,则输出  - 1

Examples
Input
5
1 2 2 3 3
Output
1 5 2 4 3 
Input
7
1 1 2 1 4 4 4
Output
-1