멋진 사진
시간 제한6초메모리 제한512 MB
각 사진에 나타난 공의 번호 집합이 주어질 때, 가능한 모든 색 배정에서 항상 같은 색인 공 중 가장 작은 번호를 각 공마다 구합니다.
문제
에리카는 1번부터 n번까지 번호가 붙은 볼링공을 가지고 있다. 각 볼링공은 특정한 색이고, 번호는 공에 적혀 있다. 여러 볼링공이 같은 색일 수 있다.
에리카는 볼링공을 그 안에 든 공과 같은 색의 가방에 담아 운반한다. 예를 들어 빨간 공은 빨간 가방에, 초록 공은 초록 가방에 담는다.
색이 있는 각 가방은 그 색 공들 중 정확히 일부(빈 집합일 수도 있다)를 담도록 설계되어 있다. 가방을 사용할 때는 설계된 부분집합을 정확히 담아야 한다. 같은 색의 가방 두 개가 같은 부분집합을 담을 수는 없다.
에리카는 볼링공 컬렉션을 전문 사진가에게 촬영하게 했다. 사진 한 장마다 색별로 가방을 하나씩 고르고, 그 가방과 안에 든 공을 스튜디오에 가져간다. 사진가는 가방에서 꺼낸 공을 모두 한 줄로 세워 찍는다.
에리카는 자신의 컬렉션을 자랑스러워해서, 가져갈 수 있는 가방의 유효한 조합마다 한 번씩 스튜디오를 찾았다.
예를 들어 에리카에게 1번부터 5번까지 번호가 붙은 볼링공 5개가 있다고 하자. 1, 2, 5번 공은 빨간색이고 3, 4번 공은 초록색이다. 에리카에게는 빨간 가방이 두 개 있는데, 첫 번째 가방은 1번과 2번 공을, 두 번째 가방은 2번과 5번 공을 담을 수 있다. 초록 가방은 세 개 있는데, 첫 번째는 3번과 4번 공을, 두 번째는 3번 공만, 세 번째는 초록색이지만 아무 공도 담을 수 없다. 에리카는 빨간 가방 두 개 중 하나와 초록 가방 세 개 중 하나를 고를 수 있다. 이렇게 하면 [1, 2, 3, 4], [2, 3, 4, 5], [1, 2, 3], [2, 3, 5], [1, 2], [2, 5] 여섯 장의 사진이 나온다. 안타깝게도 사진은 흑백으로 나왔다. 각 사진에는 공의 번호만 보일 뿐, 공의 색은 보이지 않는다.
에리카의 사진들을 바탕으로, 컬렉션의 볼링공 중 어느 공들이 확실히 같은 색인지 알아내라.
예를 들어 에리카가 사진을 두 장 찍었는데, 첫 번째 사진에는 1번과 2번 공이, 두 번째 사진에는 1번과 3번 공이 나왔다고 하자. 가능한 경우는 두 가지다.
- 모든 공이 같은 색이고, 가방은 {1, 2}와 {1, 3}을 담는다.
- 2번과 3번 공은 같은 색이고 1번 공과는 다른 색이다. 가방은 {1}, {2}, {3}을 담는다.
두 경우 모두 2번과 3번 공은 같은 색이고, 1번 공은 다른 색일 수 있다.
입력
첫 줄에 두 정수 n ()과 m ()이 주어진다. n은 에리카가 가진 볼링공의 개수이고, m은 에리카가 찍은 사진의 개수이다.
이어지는 m개의 줄에는 사진이 한 장씩 주어진다. 각 사진은 1번부터 n번 공 순서대로 나열한 길이 n의 0과 1 문자열이다. 0은 해당 공이 사진에 없다는 뜻이고, 1은 사진에 있다는 뜻이다.
출력
1번부터 n번까지 각 볼링공에 대해, 확실히 같은 색인 볼링공 중 번호가 가장 작은 공의 번호를 순서대로 출력하라.