atcoder#ARC130E. [ARC130E] Increasing Minimum

[ARC130E] Increasing Minimum

题目描述

N N 項からなる正整数列 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, , K k\ =\ 1,\ 2,\ \ldots,\ K の順に、次を行う。
    • Ai = min{A1, A2, , AN} A_i\ =\ \min\{A_1,\ A_2,\ \ldots,\ A_N\} となる i i をひとつ選ぶ。
    • ik = i i_k\ =\ i と定める。
    • Ai A_i 1 1 を加える。

整数 N, K N,\ K と数列 I I が与えられます。

操作の結果として I I を得ることが可能であるような正整数列 A A が存在するかを判定してください。存在する場合には、そのようなもののうち辞書順最小のものを答えてください。

输入格式

入力は以下の形式で標準入力から与えられます。

N N K K i1 i_1 i2 i_2 \ldots iK i_K

输出格式

操作の結果として I I を得ることが可能であるような正整数列 A A が存在しない場合、-1 と出力してください。 存在する場合、そのような正整数列 A A のうち、辞書順最小のものを、空白で区切って 1 1 行で出力してください。

4 6
1 1 4 4 2 1
1 3 3 2
4 6
2 2 2 2 2 2
6 1 6 6
4 6
1 1 2 2 3 3
-1

提示

制約

  • 1 N, K 3× 105 1\leq\ N,\ K\leq\ 3\times\ 10^5
  • 1 ik N 1\leq\ i_k\leq\ N

Sample Explanation 1

操作の結果として I = (1,1,4,4,2,1) I\ =\ (1,1,4,4,2,1) を得ることが可能な正整数列 A A としては、(1, 3, 3, 2) (1,\ 3,\ 3,\ 2) , (2, 4, 5, 3) (2,\ 4,\ 5,\ 3) などがあります。そのうち辞書順最小のものは (1, 3, 3, 2) (1,\ 3,\ 3,\ 2) です。