루이 13세와 그의 막강한 재상 리슐리외 추기경의 시대, 한 무리의 총사들이 '가득 찬 술통 여관'에서 식사를 마친 뒤에도 계속 포도주를 마셨다. 포도주가 넉넉했던 탓에 언성이 높아져 난투가 벌어졌고, 모든 총사가 서로를 모욕했다. 결투는 피할 수 없게 되었다.
누가 누구와, 어떤 순서로 싸울지 정하기 위해 총사들은 원을 이루어 선다. 매 라운드마다 총사 한 명이 뽑혀 바로 오른쪽 이웃과 결투한다. 진 사람은 경기에서 빠지고(시신은 하인들이 옮겨 간다), 원이 좁혀지면서 진 사람 옆에 있던 사람이 이긴 사람의 새 이웃이 된다. 이렇게 n−1번의 결투가 끝나면 총사 한 명만 남는다.
가능한 모든 결투의 승패는 미리 정해져 있으며 행렬 A로 주어진다. Ai,j=1이면 사람 i는 사람 j를 항상 이기고, Ai,j=0이면 사람 i는 사람 j에게 항상 진다. 고를 수 있는 것은 결투의 순서뿐이며, 각 결투의 승자는 행렬로 결정된다. 이 "이긴다" 관계는 반드시 추이적이지는 않다. 즉 i가 j를 이기고, j가 k를 이기며, k가 i를 이기는 상황이 생길 수 있다. 그래서 결투를 치르는 순서에 따라 최후의 생존자가 달라진다.
1번부터 n번까지 번호가 매겨진 n명이 원을 이루고 있다. 한 번의 결투에서 뽑힌 사람 i는 오른쪽 이웃, 즉 사람 i+1(i=n이면 사람 1)과 싸운다. 진 사람은 빠지고 원은 좁혀진다. 어떤 사람 k에 대해 n−1번의 결투 순서를 적절히 정해서 k를 마지막까지 살아남게 만들 수 있으면, k는 우승할 수 있다고 말한다.
행렬 A를 읽고, 우승할 수 있는 모든 사람을 구하여 출력하는 프로그램을 작성하시오.
첫째 줄에 정수 n이 주어지며 3≤n≤100이다.
다음 n개의 줄에는 각각 0 또는 1로 이루어진 길이 n의 문자열이 주어지고, i번째 줄의 j번째 문자가 Ai,j이다.
i=j인 모든 경우에 Ai,j=1−Aj,i이고, 모든 i에 대해 Ai,i=1이다.
첫째 줄에 우승할 수 있는 사람의 수 m을 출력한다.
그다음 m개의 줄에 그 사람들의 번호를 오름차순으로 한 줄에 하나씩 출력한다.
샘플에서 결투 순서를 1-2, 1-3, 5-6, 7-1, 4-6, 6-1로 정하면 사람 6이 우승한다. 사람 1과 3도 우승할 수 있고 다른 사람은 우승할 수 없으므로, 답은 1, 3, 6이다.