← Home
write a go solution for Description:
You are given a binary string s of length n, consisting of zeros and ones. You can perform the following operation exactly once:

1. Choose an integer p (1<=p<=n).
2. Reverse the substring s_1s_2ldotss_p. After this step, the string s_1s_2ldotss_n will become s_ps_p-1ldotss_1s_p+1s_p+2ldotss_n.
3. Then, perform a cyclic shift of the string s to the left p times. After this step, the initial string s_1s_2ldotss_n will become s_p+1s_p+2ldotss_ns_ps_p-1ldotss_1.

For example, if you apply the operation to the string 110001100110 with p=3, after the second step, the string will become 011001100110, and after the third step, it will become 001100110011.

A string s is called k-proper if two conditions are met:

- s_1=s_2=ldots=s_k;
- s_i+kneqs_i for any i (1<=i<=n-k).

For example, with k=3, the strings 000, 111000111, and 111000 are k-proper, while the strings 000000, 001100, and 1110000 are not.

You are given an integer k, which is a divisor of n. Find an integer p (1<=p<=n) such that after performing the operation, the string s becomes k-proper, or determine that it is impossible. Note that if the string is initially k-proper, you still need to apply exactly one operation to it.

Input Format:
Each test consists of multiple test cases. The first line contains one integer t (1<=t<=10^4) — the number of test cases. The description of the test cases follows.

The first line of each test case contains two integers n and k (1<=k<=n, 2<=n<=10^5) — the length of the string s and the value of k. It is guaranteed that k is a divisor of n.

The second line of each test case contains a binary string s of length n, consisting of the characters 0 and 1.

It is guaranteed that the sum of n over all test cases does not exceed 2*10^5.

Output Format:
For each test case, output a single integer — the value of p to make the string k-proper, or -1 if it is impossible.

If there are multiple solutions, output any of them.

Note:
In the first test case, if you apply the operation with p=3, after the second step of the operation, the string becomes 11100001, and after the third step, it becomes 00001111. This string is 4-proper.

In the second test case, it can be shown that there is no operation after which the string becomes 2-proper.

In the third test case, if you apply the operation with p=7, after the second step of the operation, the string becomes 100011100011, and after the third step, it becomes 000111000111. This string is 3-proper.

In the fourth test case, after the operation with any p, the string becomes 5-proper.. Output only the code with no comments, explanation, or additional text.