CF BUDDY
← Problems·

1295B · Infinite Prefixes

1700 · math, strings

Problem: You are given string ss of length nn consisting of 0-s and 1-s. You build an infinite string tt as a concatenation of an infinite number of strings ss, or t=sssst = ssss \dots For example, if s=s = 10010, then t=t = 100101001010010...

Calculate the number of prefixes of tt with balance equal to xx. The balance of some string qq is equal to cnt0,qcnt1,qcnt_{0, q} - cnt_{1, q}, where cnt0,qcnt_{0, q} is the number of occurrences of 0 in qq, and cnt1,qcnt_{1, q} is the number of occurrences of 1 in qq. The number of such prefixes can be infinite; if it is so, you must say that.

A prefix is a string consisting of several first letters of a given string, without any reorders. An empty prefix is also a valid prefix. For example, the string "abcd" has 5 prefixes: empty string, "a", "ab", "abc" and "abcd".

Input Format: The first line contains the single integer TT (1T1001 \le T \le 100) — the number of test cases.

Next 2T2T lines contain descriptions of test cases — two lines per test case. The first line contains two integers nn and xx (1n1051 \le n \le 10^5, 109x109-10^9 \le x \le 10^9) — the length of string ss and the desired balance, respectively.

The second line contains the binary string ss (s=n|s| = n, si{0,1}s_i \in \{\text{0}, \text{1}\}).

It's guaranteed that the total sum of nn doesn't exceed 10510^5.

Output Format: Print TT integers — one per test case. For each test case print the number of prefixes or 1-1 if there is an infinite number of such prefixes.

Note: In the first test case, there are 3 good prefixes of tt: with length 2828, 3030 and 3232.

Sample Cases

Case 1

Input

4
6 10
010010
5 3
10101
1 0
0
2 0
01

Output

3
0
1
-1

Similar problems

00:00:00
Loading editor…
Welcome! I'm your coding tutor for this problem. Use the chips below to reveal stored hints or get AI feedback on your code. I'll guide you step by step — never giving away the solution.

Sign in to unlock AI tutor feedback