만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

두 개의 문

면접 대비

시간 제한1초메모리 제한1024 MB

요약
n개의 문과 문을 뒤집는 m개의 스위치가 주어질 때, 각 i(-n부터 n까지)년 이동이 가능한 스위치 조합을 찾습니다.
난이도

보통10점 중 4점

유형
완전 탐색, 비트 연산
정답자
아직 제출이 없습니다

문제

도도는 시공의 폭풍으로 빨려 들어간 에아를 찾으러 나섰습니다. 에아는 지금으로부터 미래로 −n-n년과 nn년 사이에 있다는 것만 알고 있습니다. 타임머신을 찾던 도도는 검은 마법사에게서 신기한 문에 대한 정보를 알아냈습니다.

이 문에는 앞면과 뒷면이 있으며, 앞면은 뒷면보다 항상 1년 미래입니다. 즉, 문을 앞에서 뒤로 통과하면 1년 과거로 가고, 뒤에서 앞으로 통과하면 1년 미래로 갑니다.

악마 같은 검은 마법사는 이 문을 그냥 줄 수 없다면서, nn개의 문을 이어 붙인 통로를 주겠다고 했습니다. 도도는 오랜 연구 끝에 특정 문의 조합을 180도 돌릴 수 있는 mm개의 스위치를 설치했습니다. 이제 이 스위치를 사용해 에아를 구하러 갑시다.

입력

첫째 줄에 nn(1≤n≤1001 \le n \le 100)과 mm(1≤m≤201 \le m \le 20)이 주어집니다.

둘째 줄에는 길이 nn의 0과 1로만 이루어진 문자열이 주어집니다. jj번째 문자는 jj번째 문의 초기 상태를 나타냅니다. 0이면 앞면이, 1이면 뒷면이 도도를 향하고 있다는 뜻입니다.

셋째 줄부터 m+2m+2번째 줄까지는 길이 nn의 0과 1로만 이루어진 문자열이 mm개 주어집니다. (i+2)(i+2)번째 줄의 jj번째 문자는 ii번 스위치가 jj번 문을 180도 돌리는지를 나타냅니다. 0이면 돌리지 않고, 1이면 돌립니다.

출력

총 (2n+1)(2n+1)개의 줄을 출력합니다. 모든 −n≤i≤n-n \le i \le n에 대해, (i+n+1)(i+n+1)번째 줄에는 미래로 ii년을 가려고 할 때의 답을 출력합니다.

각 줄에는 정답이 존재하면 눌러야 하는 스위치의 개수 kk(0≤k≤m0 \le k \le m)와 스위치 번호를 공백으로 구분해 출력합니다. 정답이 존재하지 않으면 -1을 출력합니다.

눌러야 하는 스위치의 조합이 여러 가지라면 그중 아무거나 하나를 출력합니다.

힌트

빨간색은 문의 앞면이, 파란색은 뒷면이 보이는 상태를 뜻합니다. 그림의 위쪽 통로가 초기 상태입니다. 이 상태로 통로를 통과하면 −3-3년 미래, 즉 3년 과거로 가게 됩니다. 여기서 2번 스위치를 누르면 아래쪽 통로와 같아집니다. 이 상태로 통로를 통과하면 1년 미래로 갑니다.

alt text

예제1

  1. 예제 1

    입력
    3 2
    000
    010
    101
    
    예상 출력
    0
    -1
    1 1
    -1
    1 2
    -1
    2 1 2