C. MEX много раз
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Дан массив $$$a_1,a_2,\ldots, a_n$$$, состоящий из попарно различных целых чисел от $$$0$$$ до $$$n$$$. Рассмотрим следующую операцию:

  • последовательно для каждого $$$i$$$ от $$$1$$$ до $$$n$$$ в этом порядке элемент $$$a_i$$$ заменяется на $$$\operatorname{MEX}(a_1, a_2, \ldots, a_n)$$$.

Здесь $$$\operatorname{MEX}$$$ набора чисел $$$c_1, c_2, \ldots, c_m$$$ определяется как наименьшее неотрицательное целое число $$$x$$$, которое не встречается в наборе чисел $$$c$$$. Например, $$$\operatorname{MEX}(0, 2, 2, 1, 4) = 3$$$, и $$$\operatorname{MEX}(1, 2) = 0$$$.

Выведите массив, который получится после применения к нему такой операции $$$k$$$ раз.

Входные данные

Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 10^5$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.

Первая строка каждого набора входных данных содержит два целых числа $$$n$$$ и $$$k$$$ ($$$1\le n\le 10^5$$$, $$$1\le k\le 10^9$$$).

Вторая строка каждого набора входных данных содержит $$$n$$$ попарно различных целых чисел $$$a_1,a_2,\ldots, a_n$$$ ($$$0\le a_i\le n$$$) — элементы массива до выполнения операций.

Гарантируется, что сумма значений $$$n$$$ по всем наборам входных данных не превосходит $$$10^5$$$.

Выходные данные

Для каждого набора входных данных выведите все $$$n$$$ элементов итогового массива после применения к нему операции $$$k$$$ раз.

Пример
Входные данные
5
1 2
1
3 1
0 1 3
2 2
0 2
5 5
1 2 3 4 5
10 100
5 3 0 4 2 1 6 9 10 8
Выходные данные
1
2 0 1
2 1
2 3 4 5 0
7 5 3 0 4 2 1 6 9 10
Примечание

В первом наборе входных данных процесс происходит следующим образом:

  1. На первой операции массив изменяется с $$$[1]$$$ на $$$[0]$$$, поскольку $$$\operatorname{MEX}(1) = 0$$$.
  2. На второй операции массив изменяется с $$$[0]$$$ на $$$[1]$$$, поскольку $$$\operatorname{MEX}(0) = 1$$$.

Значит, массив станет равен $$$[1]$$$ после двух операций.

Во втором наборе входных данных за одну операцию массив изменяется так: $$$[{\mkern3mu\underline{\mkern-3mu {\bf 0}\mkern-3mu}\mkern3mu}, 1, 3] \rightarrow [2, {\mkern3mu\underline{\mkern-3mu {\bf 1}\mkern-3mu}\mkern3mu}, 3] \rightarrow [2, 0, {\mkern3mu\underline{\mkern-3mu {\bf 3}\mkern-3mu}\mkern3mu}] \rightarrow [2, 0, 1]$$$.

В третьем наборе входных данных за одну операцию массив изменяется так: $$$[{\mkern3mu\underline{\mkern-3mu {\bf 0}\mkern-3mu}\mkern3mu}, 2] \rightarrow [1, {\mkern3mu\underline{\mkern-3mu {\bf 2}\mkern-3mu}\mkern3mu}] \rightarrow [1, 0]$$$. За вторую операцию массив изменяется так: $$$[{\mkern3mu\underline{\mkern-3mu {\bf 1}\mkern-3mu}\mkern3mu}, 0] \rightarrow [2, {\mkern3mu\underline{\mkern-3mu {\bf 0}\mkern-3mu}\mkern3mu}] \rightarrow [2, 1]$$$.