오래된 돌 게임

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

문제

임의의 일반 트리 $T$ 위에서 진행되는 오래된 돌 게임이 있다. 게임의 목표는 다음 규칙을 지키면서 트리 $T$의 루트에 돌 하나를 올려놓는 것이다.

  1. 게임을 시작할 때, 플레이어는 돌 $K$개를 골라 하나의 통에 모두 넣는다.
  2. 매 단계마다, 플레이어는 통에서 돌 하나를 꺼내 비어 있는 임의의 잎(leaf) 노드에 올려놓을 수 있다.
  3. 어떤 노드 $p$의 직속 자식 $r$개가 각각 돌 하나씩을 가지고 있으면, 플레이어는 이 $r$개의 돌을 모두 치우고 그중 하나를 $p$에 올려놓을 수 있다. 나머지 $r-1$개의 돌은 다시 통에 넣어 이후 단계에서 사용할 수 있다.

위 규칙을 따라 루트에 돌 하나를 올려놓는 데 성공하면 플레이어가 이긴다.

주어진 트리에서 플레이어가 게임을 이길 수 있도록, 게임 시작 시 골라야 하는 돌의 최소 개수 $K$를 구하는 프로그램을 작성하시오.

입력

입력은 여러 개의 트리를 담고 있다. 첫 번째 줄에는 트리의 개수 $M$이 주어진다 ($1 \le M \le 10$). 이어서 $M$개의 트리에 대한 설명이 차례로 주어진다. 각 트리의 노드 수는 $N < 200$이며, 노드에는 $1, 2, \dots, N$의 번호가 붙어 있다. 각 노드는 임의의 개수의 자식을 가질 수 있고, 루트의 번호는 항상 $1$이다. 각 트리의 설명은 별도의 줄에 놓인 $N$으로 시작한다. 이어지는 $N$개의 줄은 노드 번호 순서대로 각 노드의 자식을 설명하며, 각 줄은 노드 번호 $p$ ($1 \le p \le N$), 그 노드의 직속 자식 수 $r$, 그리고 그 $r$개 자식의 번호로 이루어진다.

출력

각 입력 트리마다 한 줄씩, 그 트리에서 게임을 이기기 위해 규칙 1에서 골라야 하는 돌의 최소 개수를 출력한다.