#arc128e. [arc128_e]K Different Values

[arc128_e]K Different Values

問題文

長さ NN の整数列 A=(A1,A2,cdots,AN)A=(A_1,A_2,\\cdots,A_N),及び整数 KK が与えられます.

以下の条件を両方満たす整数列 xx を作ることを考えます.

  • 各整数 ii (1leqileqN1 \\leq i \\leq N) について,xx はちょうど AiA_i 個の ii を含む. また逆に,それ以外の整数を含まない.
  • xx の中で連続するどの KK 個を見ても,その KK 個の値はすべて異なる.

条件を満たす xx を作ることが可能かどうか判定し,可能な場合は条件を満たす中で辞書順最小の xx を求めてください.

制約

  • 2leqKleqNleq5002 \\leq K \\leq N \\leq 500
  • 1leqAi1 \\leq A_i
  • sum1leqileqNAileq200000\\sum_{1 \\leq i \\leq N} A_i \\leq 200000
  • 入力される値はすべて整数である

入力

入力は以下の形式で標準入力から与えられる.

NN KK A1A_1 A2A_2 cdots\\cdots ANA_N

出力

条件を満たす数列 xx が作ることが不可能な場合,-1 と出力せよ. 可能な場合,辞書順最小の xx を出力せよ.


入力例 1

3 3
2 2 1

出力例 1

1 2 3 1 2

x=(1,2,3,1,2),(2,1,3,2,1)x=(1,2,3,1,2),(2,1,3,2,1) の二つが条件を満たし,その中で辞書順最小の (1,2,3,1,2)(1,2,3,1,2) が答えになります.


入力例 2

3 2
2 1 2

出力例 2

1 2 3 1 3

入力例 3

3 3
1 3 3

出力例 3

-1