디지오(Dyzio)는 야셱(Jasiek)의 친구이고, 야셱처럼 수수께끼를 좋아합니다. 디지오가 야셱에게 낸 수수께끼는 다음과 같습니다.
야셱아, 여기 밧줄이 하나 있어. 이 밧줄을 여러 조각으로 잘라야 해. 어떻게 자르는지 직접 알려 주지는 않을게. 대신 0과 1로 이루어진 수열을 줄 테니, 앞에서부터 읽으면서 다음 규칙대로 자르면 돼.
- 지금 보고 있는 조각의 설명이 1로 시작하면, 그 조각을 정확히 반으로 자른다. 이 1 바로 뒤에는 (같은 규칙을 그대로 적용해서) 왼쪽 조각을 어떻게 할지 적어 두었고, 그 설명이 끝난 다음에 이어서 오른쪽 조각을 어떻게 할지 적어 두었다.
- 지금 보고 있는 조각의 설명이 0이면, 그 0 한 글자가 그 조각에 대한 설명 전부이며 "자르지 않고 그대로 둔다"는 뜻이다. 특히 수열 전체가 0 한 글자뿐이라면 밧줄을 통째로 남겨 둔다.
- 반드시 왼쪽 조각을 모두 자른 뒤에야 오른쪽 조각을 자르기 시작할 수 있다.
밧줄은 처음에 하나의 조각입니다. 한 번 자를 때마다 조각은 똑같은 길이의 두 조각으로 나뉘므로, 어떤 조각의 길이는 그 조각이 몇 번 잘렸는지에만 달려 있습니다. 자르는 순서는 수열이 정한 순서(언제나 왼쪽이 먼저)를 따릅니다.
(처음으로 나오는) 가장 짧은 조각을 얻으려면 최소 몇 번 잘라야 하는지 구하세요.
다음을 수행하는 프로그램을 작성하세요.
첫째 줄에 정수 n이 주어진다 (1≤n≤20000). 둘째 줄에는 길이가 n이고 0과 1로만 이루어진 문자열(사이에 공백 없음)이 주어지며, 이는 디지오가 준 밧줄 자르기 설명이다.
(처음으로 나오는) 가장 짧은 조각을 얻는 데 필요한 최소 자르기 횟수를 나타내는 정수 하나를 한 줄에 출력한다.