시간 제한
메모리 제한
시간 제한
1초
메모리 제한
128 MB
방학 중 비상 연락을 위해 반 전체 학생에게 연락할 수 있는 연락망을 만들었다. 학생 1은 반장이고, 나머지 학생은 2번부터 n번까지의 번호로 표시한다. 어떤 학생 a가 학생 b의 전화번호를 알고 있으면, 연락망에는 a에서 b로 향하는 화살표가 있다.
연락은 반장에게서 시작한다. 연락을 받은 학생은 자신이 전화번호를 알고 있는 학생에게 전화할 수 있다. 반장을 제외한 모든 학생은 정확히 한 사람에게서만 전화를 받아야 한다. 전화 한 통에는 1분이 걸리며, 한 사람이 여러 명에게 전화해야 하면 한 명씩 차례대로 전화한다.

위 그림은 연락망의 한 사례이다. 번호가 적힌 사각형은 학생을 나타내고, 화살표는 전화를 걸 수 있는 방향을 나타낸다.
아래 표는 이 연락망에서 가능한 두 연락 계획이다. 연락 계획 A는 4분 만에 모든 학생에게 연락하고, 연락 계획 B는 5분이 걸린다.
| 연락 계획 A | 연락 계획 B | ||||
|---|---|---|---|---|---|
| 송신자 | 수신자 | 통화 시각 | 송신자 | 수신자 | 통화 시각 |
| 1 | 4 | 1 | 1 | 2 | 1 |
| 1 | 3 | 2 | 1 | 3 | 2 |
| 1 | 2 | 3 | 1 | 4 | 3 |
| 3 | 5 | 3 | 3 | 5 | 3 |
| 4 | 6 | 2 | 4 | 6 | 4 |
| 5 | 7 | 4 | 5 | 7 | 4 |
| 6 | 9 | 3 | 5 | 8 | 5 |
| 6 | 8 | 4 | 6 | 9 | 5 |
주어진 연락망을 이용해 모든 학생에게 연락할 수 있는 빠른 비상 연락 계획을 출력하는 프로그램을 작성하시오.
첫째 줄에 전체 학생 수 n이 주어진다. n은 100 이하의 정수이다.
다음 n개의 줄에는 각 줄마다 한 학생의 번호와 그 학생이 전화번호를 알고 있는 학생들의 번호가 공백으로 구분되어 주어진다. 전화번호를 알고 있는 학생이 없으면 그 줄에는 학생 번호만 주어진다.
첫째 줄에 모든 학생에게 연락하는 데 걸리는 총 시간을 분 단위로 출력한다.
그다음 줄부터는 1분, 2분, ..., 총 시간 분에 이루어지는 통화를 차례대로 출력한다. 한 줄에는 그 시각에 이루어지는 통화들을 송신자 번호와 수신자 번호의 쌍으로 나열한다. 같은 시각에 여러 통화가 있으면 쌍들을 공백으로 구분해 한 줄에 출력한다.
출력한 계획은 연락망의 방향을 따라야 하며, 반장을 제외한 모든 학생이 정확히 한 번씩 연락을 받아야 한다. 가능한 한 기준 시간 이하의 빠른 계획을 출력해야 한다.