시간 제한
메모리 제한
지민이는 보물을 찾으러 떠나기 위해 섬과 바다가 그려진 지도를 샀다. 지도는 N×M 직사각형이며, 각 칸에는 x 또는 .가 적혀 있다.
바다는 . 칸들이 가로 또는 세로로 최대한 연결된 그룹이다. 섬은 x 칸들이 가로, 세로, 또는 대각선으로 최대한 연결된 그룹이다.
다른 섬을 하나도 포함하지 않는 섬의 높이는 0이다. 어떤 섬 A가 포함하는 섬들 중 가장 높은 높이가 K라면, 섬 A의 높이는 K+1이다.
섬 A가 섬 B를 포함한다는 것은 A와 B가 서로 다른 섬이고, 섬 B의 어느 칸에서 출발해도 섬 A의 밖으로 나갈 수 없다는 뜻이다. 이때 이동은 가로 또는 세로로만 할 수 있으며, 대각선 이동은 할 수 없다.
다음 지도는 섬의 번호를 함께 표시한 예시이다.
xxx.x...xxxxx 000.0...11111
xxxx....x...x 0000....1...1
........x.x.x ........1.4.1
..xxxxx.x...x ..55555.1...1
..x...x.xxx.x ..5...5.111.1
..x.x.x...x.. ..5.3.5...1..
..x...x...xxx ..5...5...111
...xxxxxx.... ...555555....
x............ 2............
이 지도에는 섬이 총 6개 있다. 높이가 0인 섬은 5개(0~4)이고, 높이가 1인 섬은 1개(5)이다. 3번 섬에서 출발하면 5번 섬의 밖으로 나갈 수 없으므로 5번 섬은 3번 섬을 포함한다. 반면 4번 섬에서는 1번 섬의 밖으로 나갈 수 있으므로 1번 섬은 4번 섬을 포함하지 않는다.
지도가 주어졌을 때, 높이가 0인 섬의 개수부터 가장 높은 섬의 높이 H에 대한 높이 H인 섬의 개수까지 차례대로 출력하라.
첫째 줄에 자연수 N과 M이 주어진다. N과 M은 각각 50 이하이다.
둘째 줄부터 N개의 줄에 섬의 지도가 주어진다.
섬이 하나도 없으면 -1을 출력한다.
그렇지 않다면 높이가 0인 섬의 개수, 높이가 1인 섬의 개수, ..., 높이가 H인 섬의 개수를 공백으로 구분해 출력한다. H는 지도에 있는 섬 중 가장 높은 높이이다.