밀밭 수확

1로 연결된 각 영역을 찾아 넓이 순으로 정렬한 뒤, 모든 칸에 해당 영역의 순번을 출력한다.

보통4그래프DFS정렬면접 대비아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

조란은 농장에 산다. 마을에서 가장 큰 콤바인이 조란에게 있다. 올해는 수매가 순조롭지 않았지만 조란은 여러 곳에 밀을 심었다. 수확할 때가 왔는데, 조란은 일할 마음이 별로 없다.

그래도 하루에 밀밭 하나는 수확한다. 그날 수확하는 밀밭은 남은 밀밭 중 면적이 가장 작은 것이다.

조란의 땅은 R×SR \times S 크기의 정사각형 격자로 나타낸다. 각 칸마다 조란이 밀을 심었는지 아닌지 알려져 있다. 두 칸이 변을 맞대고 있으면 서로 인접하다고 한다.

밀밭은 밀을 심은 칸끼리 인접해서 이어진 최대 집합이다. 아래 그림의 왼쪽 표에는 밀밭이 네 개 있다. 오른쪽 표에는 각 밀밭에 조란이 수확하는 순서를 적었다.

밀을 심은 각 칸을 조란이 며칠째에 수확하는지 구하는 프로그램을 작성하라.

입력

첫째 줄에 조란의 땅 크기를 나타내는 자연수 RR, SS가 주어진다 (1R,S501 \le R, S \le 50).

다음 RR개의 줄에는 각각 문자 '0' 또는 '1'이 SS개씩 주어진다. '0'은 밀을 심지 않은 칸, '1'은 밀을 심은 칸이다.

밀밭의 개수는 10보다 작고, 면적이 같은 밀밭은 없다.

출력

RR개의 줄에 각각 문자 SS개를 출력한다. 밀을 심지 않은 칸에는 '0'을 출력하고, 나머지 칸에는 그 칸을 수확하는 날의 순번을 출력한다.