어느 가계도(족보) 서비스는 고객들의 가계도를 저장한다. 최근 한 고객이 소프트웨어가 답할 수 없는 질문을 했다. "우리 가족 중 손주가 가장 많은 사람은 누구인가?" 그리고 증손주, 고손주 등에 대한 비슷한 질문들이다.
주어진 가계도와 거리 $d$에 대해, 어떤 사람의 해당 후손이란 그 사람보다 정확히 $d$세대 아래에 있는 사람들을 말한다. $d = 1$이면 자녀, $d = 2$이면 손주, $d = 3$이면 증손주, 이런 식으로 이어진다. 해당 후손이 가장 많은 사람들을 찾아라.
첫 줄에 테스트 케이스의 개수를 나타내는 정수 하나가 주어진다.
각 테스트 케이스는 두 양의 정수 $n$과 $d$가 있는 줄로 시작한다. $n$은 뒤따르는 설명 줄의 개수이고, $d$는 질문의 세대 거리이다($d = 1$이면 자녀, $d = 2$이면 손주, 이런 식이다).
이어지는 $n$개의 줄은 각각 다음 형태이다.
name m dname1 dname2 ... dnamem
여기서 name은 가족 구성원의 이름, m은 그 사람의 자녀 수, dname1 ... dnamem은 자녀들의 이름이다. 줄들은 특별한 순서 없이 주어진다. $n$개의 줄은 전체가 하나의 연결된 트리를 이룬다. 한 트리에는 최대 1000명이 있고, 모든 이름은 길이가 최대 10자이다.
각 테스트 케이스마다 먼저 다음 줄을 출력한다.
Tree i:
여기서 i는 1부터 시작하는 테스트 케이스 번호이다.
그다음, 해당 후손이 하나 이상인 사람들을 해당 후손 수가 많은 순서로 정렬하고, 수가 같으면 이름의 알파벳(사전) 순서로 정렬한다. 이 정렬에서 앞의 세 명을 출력하되, 3위의 수가 동점이어서 세 명을 넘게 되면 그 3위의 수 이상인 사람을 모두 출력한다(맨 아래에서 동점인 사람은 모두 포함한다). 해당 후손이 있는 사람이 세 명 미만이면 그 사람들만 출력하고, 아무도 없으면 한 명도 출력하지 않는다. 출력하는 각 사람은 한 줄에 이름, 공백 한 칸, 해당 후손 수 순으로 적는다.
연속한 테스트 케이스 사이에는 빈 줄을 하나 출력한다.