#arc150a. [arc150_a]Continuous 1

[arc150_a]Continuous 1

問題文

0, 1, ? のみからなる長さ NN の文字列 S=S1S2dotsSNS=S_1S_2\\dots S_N が与えられます。

これから SS に含まれるすべての ?0, 1 のいずれかに置き換えることで、以下の条件がすべて満たされるようにしたいです。

  • SS1 をちょうど KK 個含む。
  • KK 個の 1 は連続している。すなわち、ある i(1leqileNK+1)i\\ (1 \\leq i \\le N-K+1) があって、Si=Si+1=dots=Si+K1=S_i=S_{i+1}=\\dots=S_{i+K-1}= 1 が成り立つ。

条件を満たすような ? の置き換え方がちょうど 11 通りであるか判定してください。

TT 個のテストケースが与えられるので、それぞれについて答えを求めてください。

制約

  • 1leqTleq1051 \\leq T \\leq 10^5
  • 1leqK<Nleq3times1051 \\leq K < N \\leq 3 \\times 10^5
  • SS0, 1, ? のみからなる長さ NN の文字列
  • 全テストケースに対する NN の総和は 3times1053 \\times 10^5 以下

入力

入力は以下の形式で標準入力から与えられます。

TT mathrmcase1\\mathrm{case}_1 vdots\\vdots mathrmcaseT\\mathrm{case}_T

各ケースは以下の形式で与えられます。

NN KK SS

出力

TT 行出力してください。ii 行目には ii 番目のテストケースについて、条件を満たすような ? の置き換え方がちょうど 11 通りである場合は Yes を、そうでない場合は No を出力してください。


入力例 1

4
3 2
1??
4 2
?1?0
6 3
011?1?
10 5
00?1???10?

出力例 1

Yes
No
No
Yes

11 個目のテストケースについて、例えば SS101 に変えることができますが、この場合は 1 が連続していないため、条件を満たしません。 SS が条件を満たすようにするには SS110 に変えるしかありません。

22 個目のテストケースについて、 SS が条件を満たすようにするには SS1100, または 0110 に変えればよく、条件を満たすような ? の置き換え方は 22 通りあります。

33 個目のテストケースについて、SS が条件を満たすよう ? を置き換える方法は存在しません。