두 트리
시간 제한4초메모리 제한512 MB
루트가 서로 다른 두 k-서브트리가 자식 순서까지 같은 트리가 되는 가장 큰 k를 구합니다.
문제
루트가 있는 트리를 생각해 보자. 정점 의 서브트리에 로부터 거리가 정확히 인 정점이 적어도 하나 있다고 하자. 를 루트로 하는 서브트리에서 로부터 거리가 보다 큰 정점을 모두 제거하여 얻은 트리를 루트 의 -서브트리라고 부른다. 아래 그림은 정점 3의 2-서브트리를 빨간색으로 표시한 것이다.

한 트리의 정점 번호를 다시 붙여서 다른 트리와 같아질 수 있으면 두 서브트리가 같다고 한다. 정점의 자식 순서는 바꿀 수 없다. 예를 들어 아래 두 트리는 같지 않다.

루트가 서로 다른 두 -서브트리가 같도록 하는 가장 큰 를 구하라. 두 서브트리는 정점을 공유해도 된다.
그림은 예제 테스트의 트리를 보여 준다.

첫 번째 예시에서는 루트가 2와 3인 1-서브트리가 같다. 두 번째 예시에서는 루트가 1과 4인 3-서브트리가 같다. 세 번째 예시에서는 루트가 1과 2인 0-서브트리가 같다.
입력
첫 줄에 테스트 케이스의 개수 가 주어진다 (). 각 테스트 케이스의 첫 줄에는 정점의 개수 이 주어진다 (). 이후 개의 줄이 정점을 하나씩 설명한다. 번째 줄은 정점 의 자식 수 와, 그 뒤에 자식들의 번호를 순서대로 담고 있다. 정점은 1번부터 번호가 붙고 루트는 1번 정점이다. 입력은 1을 루트로 하는 올바른 트리임이 보장된다. 모든 테스트 케이스의 을 합하면 을 넘지 않는다.
출력
각 테스트 케이스마다 루트가 서로 다른 두 개의 같은 -서브트리가 존재하는 최대의 를 한 줄에 출력한다.