D. Минимизация бинарной строки
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Вам дана бинарная строка длины $$$n$$$ (т. е. строка, состоящая из $$$n$$$ символов '0' и '1').

За один ход вы можете поменять местами два соседних символа в строке. Какую лексикографически минимальную строку вы можете получить из заданной, если вы можете сделать не более, чем $$$k$$$ ходов? Возможно, что вы не сделаете ни одного хода.

Заметьте, что вы можете менять местами одну и ту же пару соседних символов с индексами $$$i$$$ и $$$i+1$$$ любое (возможно, нулевое) количество раз. Каждый такой обмен является отдельным ходом.

Вам необходимо ответить на $$$q$$$ независимых наборов входных данных.

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

Первая строка входных данных содержит одно целое число $$$q$$$ ($$$1 \le q \le 10^4$$$) — количество наборов входных данных.

Первая строка набора входных данных содержит два целых числа $$$n$$$ и $$$k$$$ ($$$1 \le n \le 10^6, 1 \le k \le n^2$$$) — длину строки и количество ходов, которые вы можете сделать.

Вторая строка набора входных данных содержит одну строку, состоящую из $$$n$$$ символов '0' и '1'.

Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превосходит $$$10^6$$$ ($$$\sum n \le 10^6$$$).

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

Для каждого запроса выведите ответ на него — лексикографически минимальную возможную строку длины $$$n$$$, которую вы можете получить из заданной, сделав не более, чем $$$k$$$ ходов.

Пример
Входные данные
3
8 5
11011010
7 9
1111100
7 11
1111100
Выходные данные
01011110
0101111
0011111
Примечание

В первом тестовом примере вы можете изменить строку следующим образом: $$$1\underline{10}11010 \rightarrow \underline{10}111010 \rightarrow 0111\underline{10}10 \rightarrow 011\underline{10}110 \rightarrow 01\underline{10}1110 \rightarrow 01011110$$$.

В третьем тестовом примере у вас есть достаточно ходов для того, чтобы сделать строку отсортированной.