Logo 邂逅编程之美

UOJ

时间限制:1 s 空间限制:128 MB
统计

题目描述

有$N$ 张牌叠在一起,第 $i$ 张牌上,有一个数字 $a_i$ 表示它下面至少有 $a_i$ 张牌上的信息是错误的,若它下面确实有至少 $a_i$ 张牌的信息是错误的,那这张牌的信息就是正确的,否则这张牌的信息就是错误的。(我们认为最下面的牌的后面有 $0$ 张错误的)

现在需要你重新调整牌的顺序,使得正好有 $K$ 张牌上的信息是错误的。

输入格式

第一行两个正整数 $N$ 和 $K$ $( 1 ≤ N≤ 5×10^5,0 ≤ K≤ N )$表示牌的张数和要求的错误信息的个数。 接下来 $N$ 行,每行一个数,表示对应的 $a_i$ $(0 ≤ a_i≤ 5×10^5 )$

输出格式

如果调整方案不存在,输出$-1$。否则输出由顶部到底部 $N$ 张牌对应的 $a_i$,若有多种方案,输出任意一种即可。

样例 #1

样例输入 #1

4 2
1 2 2 3

样例输出 #1

2 3 1 2

样例 #2

样例输入 #2

5 3
2 1 3 0 3

样例输出 #2

3 3 0 1 2

样例 #3

样例输入 #3

6 4
0 2 5 2 0 1

样例输出 #3

-1

提示

$30\%$的数据 $N≤ 16$。

另有$40\%$的数据 $N≤ 2000$。

样例 2 说明:

第 $5$ 张牌上写的是$2$,但是其后面只有 $0$ 张错误,所以它是错误的。

第 $4$ 张牌上写的是$1$,其后面有 $1$ 张错误(第五张),所以它是正确的。

第 $3$ 张牌上写的是$0$,其后面有 $1$ 张错误(第五张),所以它是正确的。

第 $2$ 张牌上写的是$3$,但是其后面只有 $1$ 张错误(第五张),所以它是错误的。

第 $1$ 张牌上写的是$3$,但是其后面只有 $2$ 张错误(第五张,第二张),所以它是错误的。

因此总共有 $3$ 张是错误的。