길 찾기

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

베시(Bessie)가 외딴 북극 섬에 고립되었고, 자신의 목초지로 돌아갈 수 있는 모든 경로를 알아내려 합니다. 배를 시험해 본 결과, 두 섬을 잇는 적절한 해류 경로가 있으면 한 섬에서 다른 섬으로 1의 시간만에 이동할 수 있음을 알게 되었습니다.

베시는 바다를 $1$번부터 $N$번까지 번호가 매겨진 $N$개($1 \le N \le 100$)의 섬 사이를 잇는 한 번의 이동(single-hop) 경로들의 지도로 정리했습니다. 해류가 배를 한 방향으로만 밀기 때문에 모든 경로는 단방향입니다. 두 섬이 서로 반대 방향의 해류를 이용하는 두 개의 경로로 연결되어 사실상 양방향으로 오갈 수 있는 경우도 있습니다. 어떤 경로도 섬을 자기 자신과 연결하지는 않습니다.

시작 섬 $M$($1 \le M \le N$)과 지도가 주어질 때, 어떤 섬들이 한 번 이동(hop)해서 닿는 곳인지, 두 번 이동해서 닿는 곳인지 등을 구하세요. 한 섬에 여러 경로로 닿을 수 있다면 가장 짧은 경로만 고려합니다.

예를 들어, 아래는 $M = 1$일 때 $N = 4$개의 섬이 연결된 모습입니다.

start--> 1-------->2
         |         |
         |         |
         V         V
         4<--------3

베시는 시간 0에 섬 1(출발지)에, 시간 1에 섬 2와 4에, 시간 2에 섬 3에 도달합니다.

지도는 행렬 $C$로 주어집니다. $r$행 $c$열의 원소는 $C_{rc}$($0 \le C_{rc} \le 1$)이며, $C_{rc} = 1$이면 해류를 이용해 섬 $r$에서 섬 $c$로 한 시간 단위 만에 곧바로 이동할 수 있음을 뜻합니다. 각 행 $r$은 $N$개의 원소 $C_{r1}, \dots, C_{rN}$을 가집니다.

입력

  • 첫째 줄: 두 정수 $N$과 $M$이 공백으로 구분되어 주어집니다.
  • 둘째 줄부터 $N+1$째 줄까지: $r+1$째 줄에는 행렬의 $r$행에 해당하는 $N$개의 정수 $C_{r1}, \dots, C_{rN}$이 공백으로 구분되어 주어집니다.

출력

  • 시간 $i = 0, 1, 2, \dots$에 대해, 베시가 정확히 시간 $i$에 처음 도달할 수 있는 모든 섬을 오름차순으로 한 줄에 출력합니다.
  • 그러한 섬이 존재하는 동안에만 줄을 출력하고, 다음 시간에 처음 도달하는 섬이 더 이상 없으면 멈춥니다. $M$에서 도달할 수 없는 섬은 출력하지 않습니다.