친척들의 상대적 나이

시간 제한1초메모리 제한128 MB

문제

오늘은 Ted의 100번째 생일입니다. 몇 주 전, 가족들은 Ted의 모든 후손에게 연락해 깜짝 파티를 준비하는 일을 당신에게 맡겼습니다. 이 일을 쉽게 하려고, 당신은 Ted의 후손 전체를 나이가 많은 사람부터 순서대로 정리한 명단을 만들기로 했습니다. 나이가 같은 후손끼리는 사전 순으로 나열합니다.

당신이 가진 유일한 자료는 출생 증명서뿐입니다. 이상하게도 이 증명서에는 날짜가 적혀 있지 않습니다. 각 증명서에는 아버지의 이름, 아이의 이름, 그리고 그 아이가 태어났을 때 아버지의 정확한 나이(정수인 만 나이)만 적혀 있습니다.

Ted의 모든 후손은 Ted와 생일이 같기 때문에, 어떤 두 사람의 나이 차이도 항상 정수입니다. Ted는 오늘 100세가 되므로 Ted의 나이는 100입니다.

입력

첫 줄에는 데이터 세트의 개수를 나타내는 정수 $n$이 주어집니다. 각 데이터 세트의 형식은 다음과 같습니다.

하나의 데이터 세트는 두 부분으로 구성됩니다.

  1. 후손 수 — 정수 $X$ ($0 < X < 100$) 하나가 적힌 줄로, Ted의 후손 수를 나타냅니다.
  2. 출생 증명서 목록 — 증명서 하나당 한 줄씩 총 $X$개의 줄이며, 각 줄의 형식은 FNAME CNAME FAGE입니다.
    • FNAME 은 아버지의 이름입니다.
    • CNAME 은 아이의 이름입니다.
    • FAGECNAME 이 태어난 날 아버지의 나이(정수)입니다.

참고:

  • 이름은 각 사람을 유일하게 구분하는 식별자이며, 중간에 공백이 없습니다.
  • Ted의 모든 후손은 Ted와 생일이 같으므로, 두 사람의 나이 차이는 항상 정수입니다.
  • 증명서는 빠짐없이 모두 모은 것으로, Ted의 후손마다 정확히 하나씩 존재합니다.

출력

각 데이터 세트마다 $X + 1$개의 줄을 출력합니다. 첫 줄은 DATASET Y 이며, $Y$ 는 첫 번째 데이터 세트에서 $1$, 두 번째에서 $2$, 이런 식으로 증가합니다. 이어지는 $X$개의 줄에는 Ted의 후손 명단을 나이가 많은 사람부터 순서대로 한 줄에 한 명씩 NAME AGE 형식으로 출력합니다. 나이가 같은 후손끼리는 사전 순으로 나열합니다.