시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
2 초 128 MB 6 4 4 100.000%

문제

민식이는 애들과 토론 중이다. 안타깝게 민식이의 남의 말을 제대로 알아듣지 못한다. 민식이 귀가 다른 사람이 한 말을 인식하는 방법은 다음과 같다. 일단 민식이는 다른 사람이 말한 말을 2진수로 바꾸어 듣는다. 그리고 다른 사람이 한 말의 i번째 비트는 민식이가 인식하는 이진수의 j번째 비트에 위치하게 되는데 항상 |j - i| ≤ D가 성립한다. 이렇게 만들어진 이진수로 민식이는 알아듣게 된다.

만약 다른 사람이 한 말이 0110이라면 민식이가 알아듣는 이진수의 후보는 0101, 0110, 1001, 1010으로 총 4가지이다.

문제는 다른 사람이 말하는 이진수와 정수 D, K가 주어지면 민식이가 알아듣는 이진수 후보의 개수와 이 후보들 중 K번째로 작은 이진수를 출력하는 문제이다.

입력

첫 줄에는 이진수 비트의 개수 N(1 ≤ N ≤ 2,000)과 D(0 ≤ D < N), K(1 ≤ K ≤ 100,000,000)가 공백으로 구분되어 주어진다. 두 번째 줄에는 다른 사람이 말한 N비트의 2진수가 주어진다.

출력

첫 줄에 민식이가 알아들을 것으로 예상되는 2진수의 총 후보의 개수를 100,000,000로 나눈 나머지를 출력한다. 다음 줄에는 이 이진수의 후보 중 K번째로 작은 2진수를 출력한다.

예제 입력

4 1 3
0110

예제 출력

4
1001

힌트