小红的排列构造
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

定义两个数组ab的汉明距离为:有多少个下标i满足a_i≠b_i。例如,[2,3,1]和[1,3,1]的汉明距离是1。
现在小红拿到了一个长度为n的排列p,她希望你构造一个长度为n的排列q,满足pq的汉明距离恰好等于k

排列指长度为n的数组,其中1到n每个元素恰好出现了一次。

输入描述:

第一行输入两个正整数n,k,代表排列p的长度,以及构造后的qp的汉明距离。
第二行输入n个正整数p_i,代表小红拿到的排列。
1\leq n,k \leq 10^5
1\leq a_i \leq n

输出描述:

如果无解,请输出-1。
否则输出n个正整数q_i,代表小红构造的排列。
示例1

输入

复制
3 2
2 3 1

输出

复制
1 3 2

说明

输出[2,1,3]等排列也是合法的。
示例2

输入

复制
3 4
2 3 1

输出

复制
-1