Zayin 喜欢收集硬币。Zayin 总共收集了 $n$ 枚不同的硬币。现在他想用这些硬币玩一个游戏。他将所有硬币按顺时针方向排成一个圆圈,并从 $1$ 到 $n$ 进行编号。在每一步中,Zayin 可以选择恰好 $k$ 枚连续的硬币并将它们同时翻转,这意味着这些硬币中正面朝上的会变成背面朝上,背面朝上的会变成正面朝上。
现在他想知道初始状态是否能在有限步数内达到目标状态。
输入格式
第一行包含一个整数 $T$ ($1 \le T \le 100$),表示测试用例的数量。
每个测试用例包含 3 行。第一行包含两个整数 $n$ 和 $k$ ($1 \le k \le n \le 10^5$, $\sum n \le 10^6$),其含义如上所述。接下来的两行包含两个字符串 $s$ 和 $t$ ($|s| = |t| = n$),它们仅包含数字 0 和 1。
字符串 $s$ 表示 $n$ 枚硬币的初始状态。如果第 $i$ 枚硬币正面朝上,则 $s$ 的第 $i$ 个字符为 1。如果第 $i$ 枚硬币背面朝上,则 $s$ 的第 $i$ 个字符为 0。字符串 $t$ 以与 $s$ 相同的方式表示 $n$ 枚硬币的目标状态。
输出格式
如果 Zayin 可以通过有限步操作从 $s$ 表示的状态达到 $t$ 表示的状态,输出 “Yes”;否则,输出 “No”(不含引号)。
样例
输入 1
4 3 2 000 100 3 2 000 110 6 3 100100 100101 8 3 00100100 00100101
输出 1
No Yes No Yes