AT_arc178_a [ARC178A] Good Permutation 2

题目描述

给定一个正整数 $N$ 和一个长度为 $M$ 的正整数序列 $A=(1,2,\cdots,A_M)$。 其中,$A$ 中的所有元素都是介于 $1$ 和 $N$ 之间的不同整数。(即 $A$ 是 $N$ 的一个排列) 定义: - 排列 $P=(P_1,P_2,\cdots,P_N)$ 是一个**好排列**,当且仅当:$P$ 没有连续子序列是 $A=(1,2,⋯ ,A_i)$ 的排列,其中 $1\le i\le M$。 确定是否存在这样的**好排列**,如果存在,找到**字典序最小**的好排列。

输入格式

第一行两个整数 $N,M$。 第二行 $M$ 个整数 $A_{1},A_{2},\cdots,A_{M}$。

输出格式

如果不存在好排列,则输出 `-1`。 如果存在,输出**字典序最小**的好排列,每个数之间用空格分隔。 ## 样例 #1 ### 样例输入 #1 ``` 4 1 2 ``` ### 样例输出 #1 ``` 1 3 2 4 ``` ## 样例 #2 ### 样例输入 #2 ``` 5 3 4 3 2 ``` ### 样例输出 #2 ``` 1 3 4 5 2 ``` ## 样例 #3 ### 样例输入 #3 ``` 92 4 16 7 1 67 ``` ### 样例输出 #3 ``` -1 ``` ## 样例 #4 ### 样例输入 #4 ``` 43 2 43 2 ``` ### 样例输出 #4 ``` -1 ```

说明/提示

- $ 1\leq\ M\leq\ N\leq\ 2\times\ 10^{5} $ - $ 1\leq\ A_{i}\leq\ N $ - $ A $ 中的所有元素都是不同的。 - 所有输入值都是整数。 ### 样例解释1 例如,$(4,2,1,3)$ 不是一个 好排列,因为它包含 $(2,1)$ 作为连续子序列。 其他非好排列包括 $(1,2,3,4)$ 和 $(3,4,2,1)$。 一些好排列包括 $(4,1,3,2)$ 和 $(2,3,4,1)$。其中,字典序最小的排列是 $(1,3,2,4)$。 ### 样例解释2 好排列的示例包括 $(3,1,4,5,2)$、$(2,4,5,3,1)$ 和 $(4,1,5,2,3)$。 非好排列的示例包括 $(1,2,5,3,4)$、$(2,3,4,1,5)$ 和$(5,3,1,2,4)$。 ### 样例解释3 不存在好排列,输出 `-1`。