#agc046e. [agc046_e]Permutation Cover

[agc046_e]Permutation Cover

問題文

整数 KK と整数 a1,dots,aKa_1,\\dots, a_K が与えられます。以下を満たす数列 PP が存在するか判定し、存在する場合は辞書順最小のものを求めてください。

  • PP のすべての項は 11 以上 KK 以下の整数である
  • i=1,dots,Ki=1,\\dots, K に対し、PPiiaia_i 個含む
  • PP の各項について、その項を含むある長さ KK の連続する部分列が存在し、1,dots,K1,\\dots, K の並び替えになっている

制約

  • 1leqKleq1001 \\leq K \\leq 100
  • 1leqaileq1000quad(1leqileqK)1 \\leq a_i \\leq 1000 \\quad (1\\leq i\\leq K)
  • a1+dots+aKleq1000a_1 + \\dots + a_K\\leq 1000
  • 入力はすべて整数である

入力

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

KK a1a_1 a2a_2 dots\\dots aKa_K

出力

条件を満たす数列が存在しない場合、-1 を出力せよ。 そうでない場合、条件を満たす辞書順最小の数列を出力せよ。


入力例 1

3
2 4 3

出力例 1

2 1 3 2 2 3 1 2 3 

例えば、55 項目の 22 は、5,6,75,6,7 項目からなる部分列 (2,3,1)(2,3,1) に含まれます。


入力例 2

4
3 2 3 2

出力例 2

1 2 3 4 1 3 1 2 4 3 

入力例 3

5
3 1 4 1 5

出力例 3

-1