There is a binary sequence

of length

. You may perform the following operation on this sequence:
-
Choose a non-empty contiguous subsegment of the sequence and flip all elements in that subsegment (change 0 to 1 and 1 to 0).
You need to perform the minimum number of operations so that, in the resulting sequence, the number of 0s and the number of 1s differ by exactly

. Determine whether this is possible, and if it is, output each operation.
输入描述:
The first line contains an integer
(
), the number of test cases.
For each test case, the first line contains two integers
and
(
), as described in the statement.
The second line contains a sequence
of length
consisting only of \t{0} and \t{1}, as described in the statement.
It is guaranteed that
over all test cases.
输出描述:
For each test case, if it is impossible to satisfy the requirement, output one line containing
.
Otherwise, first output YES, then output an integer
, the minimum number of operations. Output one space between
and
.
Then output
lines in the order the operations are performed. For the
-th operation, output two integers
(
), indicating that the subsegment
is flipped.
If there are multiple operation sequences that make the resulting sequence satisfy the requirement using the minimum number of operations, output any one of them.
示例1
输入
复制
3
4 0
1100
4 1
0111
5 3
00101
备注:
For the first sample, no operation is needed to satisfy the condition.
For the second sample, it is impossible to satisfy the condition regardless of the operations performed.
For the third sample, after flipping the subsegment
, the sequence becomes
, which satisfies the condition.