#333. 清零

清零

题目描述

一个 N 位的二进制数,可能有前导 0。

现在你的任务是把这个数清零,即把所有位都变成 0。

首先,你指定一个整数 K。

然后,每次操作,你可以选择任意连续的 K 位全部取反,即把其中的 0 变成 1,1 变成 0。

注意,K 的值一旦指定后就不能发生变化,即每次操作你必须选择 K 位。

显然,你初始时指定的 K 值不同,可能导致你完成任务所操作的次数不同。

问:指定 K 为何值,可以使你的操作次数最少?输出最少操作次数,并输出 K 值。如果有多个 K 值,你只需要输出最小的那个 K。

Input

第一行:一个整数 N

第二行:一个 N 位的二进制数(可能有前导 0)

Output

一行,两个整数,分别表示最少操作次数和对应的最小的 K

输入样例

5
11011

输出样例

2 2

样例解释

最少操作 2 次,此时最小的 K=2,一种可能的操作方案如下:

11011 -> 00011

00011 -> 00000

虽然当 K=3 时,也可以完成任务,一种可能的操作方案如下:

11011 -> 00111

00111 -> 00000

但显然 K=2 更小。

数据范围

30% 的数据:1 ≤ N ≤ 10

60% 的数据:1 ≤ N ≤ 1000

100% 的数据:1 ≤ N ≤ 5000