#P1064. 缺失编号记录

缺失编号记录

题目描述

某套编号记录系统会依次接收 nn 个非负整数,并将它们按照接收顺序组成序列 BB

每接收一个整数后,系统都会检查当前已经出现过的所有编号,并记录其中最小的、尚未出现的非负整数。

现在给出系统在每个时刻记录的结果序列 AA。你需要构造一个长度为 nn 的非负整数序列 BB,使得对于每个位置 ii,序列 BB 的前 ii 个数中,最小的未出现非负整数恰好为 AiA_i

也就是说,对于每个 1in1\leq i\leq n,均应满足:

Ai=mex({B1,B2,,Bi})A_i=\operatorname{mex}(\{B_1,B_2,\ldots,B_i\})

其中,mex\operatorname{mex} 表示一个整数集合中最小的、没有在集合中出现的非负整数。

如果有多种符合要求的序列 BB,输出任意一种即可。

输入格式

第一行包含一个整数 nn,表示序列的长度。

第二行包含 nn 个整数 A1,A2,,AnA_1,A_2,\ldots,A_n,表示系统在各个时刻记录的结果。

输入保证:

  • 1n1051\leq n\leq 10^5
  • 0Aii0\leq A_i\leq i
  • 对于任意 1i<n1\leq i<n,均有 AiAi+1A_i\leq A_{i+1}

输出格式

如果不存在满足要求的序列 BB,输出:

-1

否则,输出一行 nn 个非负整数 B1,B2,,BnB_1,B_2,\ldots,B_n,表示构造出的序列。

如果存在多个合法答案,输出任意一个即可。

样例

5
0 1 1 3 3
2 0 4 1 5
6
1 1 2 2 5 5
0 3 1 4 2 6
7
0 0 0 4 4 6 6
1 3 2 0 5 4 7

数据范围

  • 1n1051\leq n\leq 10^5
  • 0Aii0\leq A_i\leq i
  • 对于任意 1i<n1\leq i<n,满足 AiAi+1A_i\leq A_{i+1}