Markyyz 正在学习二进制数。他的家庭作业里有一道简单的题目。
给定一个二进制数 $s_{1 \sim n}$($s_1$ 是最高位,$s_n$ 是最低位)。你需要执行恰好 $k$ 次操作:任意选择一个区间 $[l, r]$($1 \le l \le r \le n$)并翻转 $s_l, s_{l+1}, \dots, s_r$,换句话说,对于所有 $i \in [l, r]$,如果 $s_i$ 为 $0$ 则变为 $1$,如果 $s_i$ 为 $1$ 则变为 $0$。在 $k$ 次操作后,能得到的最大的二进制数是多少?
Markyyz 发现他想到的算法都没用,于是他向 SPY 求助。SPY 起初看不起这道题,但最终还是得到了 WA(错误答案)。你能帮他们找到正确的解法吗?
输入格式
第一行包含一个整数 $T$($1 \le T \le 6 \times 10^4$),表示测试用例的数量。
每个测试用例中: 第一行包含两个整数 $n, k$($1 \le n \le 10^5, 0 \le k \le 10^{18}$)。 第二行包含一个二进制数 $s_{1 \sim n}$($s_1 = 1, \forall i \in [2, n]: s_i \in \{0, 1\}$)。
保证在所有测试用例中,$\sum n \le 2.5 \times 10^6$。
输出格式
输出一行,包含一个长度为 $n$ 的字符串,表示经过 $k$ 次操作后能得到的最大的二进制数。
样例
输入样例 1
2 8 2 10100101 5 233333333333333333 11101
输出样例 1
11111101 11111