#CF1955E. 长距离反转操作

长距离反转操作

E. 长距离反转操作

每次测试的时间限制:3 秒
每次测试的内存限制:256 兆字节


题目描述

给定一个长度为 nn 的二进制字符串 ss。二进制字符串是指只包含字符 '1''0' 的字符串。

你可以选择一个整数 kk1kn1 \le k \le n),然后执行任意次以下操作:
选择字符串中连续的 kk 个字符,将它们全部反转,即把所有的 '0' 变成 '1',所有的 '1' 变成 '0'

通过这些操作,你需要使得字符串中的所有字符都变为 '1'

例如,如果 n=5n = 5s=00100s = \texttt{00100},你可以选择 k=3k = 3,并按以下步骤操作:

  1. 选择第 11 到第 33 个字符的子串,得到 s=11000s = \texttt{11000}
  2. 选择第 33 到第 55 个字符的子串,得到 s=11111s = \texttt{11111}

请找出最大的 kk,使得可以通过上述操作将字符串中的所有字符变为 '1'。注意,达到目标所需的操作次数不重要。


输入格式

第一行包含一个整数 tt1t1041 \le t \le 10^4)——测试用例的数量。

每个测试用例的第一行包含一个整数 nn1n50001 \le n \le 5000)——字符串 ss 的长度。

第二行包含一个长度为 nn 的字符串 ss,由字符 '1''0' 组成。

保证所有测试用例的 n2n^2 之和不超过 2510625 \cdot 10^6


输出格式

对于每个测试用例,输出一个整数 kk1kn1 \le k \le n),表示能够通过所述操作使字符串全变为 '1' 的最大 kk


示例

输入

5
5
00100
5
01000
7
1011101
3
000
2
10

输出

3
2
4
3
1