#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 不包含其他整数。
  • 对于 xx 中任意选择的连续的 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

满足条件的序列 xx 有两个:(1,2,3,1,2)(1,2,3,1,2)(2,1,3,2,1)(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