#dwacon6thprelimsd. [dwacon6th_prelims_d]Arrangement

[dwacon6th_prelims_d]Arrangement

题目描述

Niwango有 NN 张卡片,编号为 1,2,ldots,N1,2,\\ldots,N。他现在要将这些卡片排成一行。

Niwango想知道是否有一种方式可以满足下面的 NN 个条件来排列卡片。帮助他确定是否存在这样的方式。如果答案是肯定的,还需要找到字典序最小的这样一种排列。

  • 卡片 11 的右边(如果有的话)不能是卡片 a1a_1
  • 卡片 22 的右边(如果有的话)不能是卡片 a2a_2
  • vdots\\vdots
  • 卡片 NN 的右边(如果有的话)不能是卡片 aNa_N

约束条件

  • 2leqNleq1052 \\leq N \\leq 10^{5}
  • 1leqaileqN1 \\leq a_i \\leq N
  • aineqia_i \\neq i

输入

输入以以下格式从标准输入给出:

NN a1a_1 a2a_2 ldots\\ldots aNa_N

输出

如果没有满足条件的排列,输出 -1。如果存在这样的排列,输出字典序最小的排列,格式如下:

b1b_1 b2b_2 ldots\\ldots bNb_N

这里,bib_i 表示从左往右数第 ii 张卡片。

示例1

4
2 3 4 1

输出示例1

1 3 2 4
  • 排列 (1,2,3,4)(1,2,3,4) 字典序比 (1,3,2,4)(1,3,2,4) 小,但是违反了条件 "卡片 11 的右边不能是卡片 22"。

示例2

2
2 1

输出示例2

-1
  • 如果没有满足条件的排列,输出 -1

示例3

13
2 3 4 5 6 7 8 9 10 11 12 13 12

输出示例3

1 3 2 4 6 5 7 9 8 10 12 11 13