#arc130e. [arc130_e]Increasing Minimum

[arc130_e]Increasing Minimum

题目描述

考虑对一个包含 NN 个正整数的序列 A=(A1,A2,,AN)A = (A_1, A_2, \ldots, A_N) 执行下面的操作,得到一个序列 I=(i1,i2,,iK)I = (i_1, i_2, \ldots, i_K)

  • 对于每个 k=1,2,,Kk = 1, 2, \ldots, K,按顺序执行以下步骤:
    • 选择一个 ii,使得 Ai=minA1,A2,,ANA_i = \\min\\{A_1, A_2, \ldots, A_N\\}
    • ik=ii_k = i
    • AiA_i 增加 11

给定整数 NNKK 和序列 II,判断是否存在一个正整数序列 AA,使得通过操作得到序列 II。如果存在,找出字典序最小的满足条件的序列。

约束条件

  • 1N,K3×1051 \leq N, K \leq 3 \times 10^5
  • 1ikN1 \leq i_k \leq N

输入

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

NN KK

i1i_1 i2i_2 \ldots iKi_K

输出

如果不存在一个满足条件的正整数序列 AA,则输出 -1。如果存在,输出满足条件的序列 AA 中字典序最小的序列,一行中用空格间隔。


示例输入1

4 6
1 1 4 4 2 1

示例输出1

1 3 3 2

可以通过操作得到序列 I=(1,1,4,4,2,1)I = (1, 1, 4, 4, 2, 1) 的一些满足条件的序列为 (1,3,3,2)(1, 3, 3, 2)(2,4,5,3)(2, 4, 5, 3)。其中字典序最小的序列是 (1,3,3,2)(1, 3, 3, 2)


示例输入2

4 6
2 2 2 2 2 2

示例输出2

6 1 6 6

示例输入3

4 6
1 1 2 2 3 3

示例输出3

-1