증권 중개인 소문망

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

문제

증권 중개인들은 소문에 과민하게 반응하는 것으로 유명하다. 당신은 고용주가 주식 시장에서 전술적 우위를 얻을 수 있도록, 증권 중개인 집단에 거짓 정보를 퍼뜨리는 일을 맡았다. 효과를 극대화하려면 소문을 가능한 한 빠르게 퍼뜨려야 한다.

각 중개인은 자신의 연락 상대에게서 온 정보만 신뢰하므로, 누가 누구와 연락하는지의 구조가 중요하다. 한 중개인이 특정 상대에게 소문을 전달하는 데에는 정해진 시간(분)이 걸리며, 이 전달 시간은 방향성을 가진다. 즉 A가 B에게 전달하는 시간과 B가 A에게 전달하는 시간이 다를 수 있고, 한쪽 방향으로만 전달이 가능할 수도 있다.

각 집단에 대해, 소문을 가장 먼저 알려 줄 중개인을 정하고, 그 경우 소문이 모두에게 도달하기까지 걸리는 시간을 구하는 프로그램을 작성하라. 이 시간은 마지막 사람이 정보를 받는 시점으로 측정한다.

입력

입력은 여러 개의 집단으로 이루어진다.

각 집단은 정수 $N$ 하나가 적힌 줄로 시작한다. $N$은 증권 중개인의 수이며 $1 \le N \le 100$이다. 중개인은 $1$번부터 $N$번까지 번호가 매겨진다.

이어지는 $N$개의 줄은 각 중개인의 연락 관계를 순서대로 나타낸다. 한 중개인의 줄은 정수 $c$($0 \le c \le N-1$), 즉 그 사람이 소문을 전달할 수 있는 상대의 수로 시작하고, 그 뒤에 $c$개의 정수 쌍이 온다. 각 쌍은 상대의 번호와, 그 상대에게 소문을 전달하는 데 걸리는 시간(분, $1 \le t \le 10$)을 차례로 나타낸다.

입력은 첫 줄이 $0$인 집단으로 끝나며, 이 종료용 집단은 처리하지 않는다.

출력

각 집단에 대해 한 줄을 출력한다.

어떤 중개인에게서 시작했을 때 소문이 결국 다른 모든 중개인에게 도달할 수 있다면, 가장 좋은 시작 중개인의 번호와 공백, 그리고 마지막 사람이 소문을 받을 때까지 걸리는 시간(정수 분)을 출력한다. 이 시간이 최소가 되는 시작 중개인을 선택하며, 최소 시간이 같은 시작 중개인이 여럿이면 그중 번호가 가장 작은 사람을 출력한다.

어떤 중개인에게서 시작하더라도 집단 전체에 소문을 전달할 수 없다면(누가 시작하든 도달할 수 없는 사람이 있다면), 대신 disjoint를 출력한다.