배
시간 제한1초메모리 제한512 MB
각 행이 열 번호나 열 범위로 주어지는 N×N 보드에서 변을 공유하는 배들을 찾아, 톤수별 배의 개수를 큰 톤수부터 출력한다.
문제

"배" 게임의 보드는 N×N개의 칸으로 이루어져 있다. 각 칸은 어떤 배에 속하거나 비어 있을 수 있다. 배에 속한 두 칸이 변을 공유하면 두 칸은 같은 배에 속한다. 서로 다른 배의 칸들은 공통점을 갖지 않는다. 배의 톤수는 그 배에 속한 칸의 수이다.
주어진 예에서 배에 속한 칸은 검게 표시되어 있으며, 보드에는 29톤 배 하나, 7톤 배 세 개, 4톤 배 두 개, 1톤 배 세 개가 있다.
보드의 설명이 주어졌을 때 배의 개수와 각 배의 톤수를 계산하는 프로그램을 작성하시오.
입력
첫 줄에 양의 정수 N (N < 30000)이 주어진다.
다음 N개 줄 각각에는 보드의 한 행에 대한 정보가 주어지며, 왼쪽에서 오른쪽으로 배에 속한 칸들의 묶음을 다음 두 형식 중 하나로 나타낸다.
<칸의 열 번호>. 이 칸이 배에 속하지만 왼쪽과 오른쪽 칸은 비어 있는 경우이다.<첫 칸의 열 번호>-<마지막 칸의 열 번호>. 첫 칸부터 마지막 칸까지(포함) 연속한 모든 칸이 배에 속하고, 이 묶음의 왼쪽과 오른쪽 칸은 비어 있는 경우이다.
칸 묶음은 쉼표로 구분하고, 각 줄은 세미콜론으로 끝난다. 줄에는 공백이 없다. 어떤 행에 배의 칸이 하나도 없으면 그 줄에는 세미콜론만 있다. 배의 총 개수는 1000을 넘지 않고, 어떤 배의 톤수도 1000톤을 넘지 않는다.
출력
배에 대한 정보를 출력한다. 각 줄에는 공백으로 구분된 정수 두 개가 있어야 한다. 첫 번째 수는 톤수이고, 두 번째 수는 그 톤수를 가진 배의 개수이다. 톤수는 내림차순으로 주어져야 하며, 그 톤수를 가진 배가 하나 이상 있을 때만 출력한다.