트리 곱
시간 제한2초메모리 제한256 MB
루트가 있는 트리 n개가 주어질 때, 트리 곱의 지름이 최대와 최소가 되는 순서를 각각 구합니다.
문제
루트가 있는 트리 이 개 주어진다. 순열 과 을 구하라. 의 지름은 최대이고, 의 지름은 최소여야 한다.
루트가 있는 트리 와 에 대해 트리 곱 는 다음과 같이 정의한다. 트리 를 복사한다. 그다음 의 각 정점 마다 의 복사본을 만들고, 의 루트를 와 합친다. 예시는 아래 표를 참고하라.

트리 곱은 결합법칙을 만족한다. 이다. 따라서 트리 3개 이상의 곱에서는 괄호를 생략할 수 있다.
다음을 기억하자.
- 트리는 사이클이 없는 연결 그래프이다. 루트가 있는 트리에는 루트라고 부르는 특별한 정점이 하나 있다. 정점 의 부모는 루트에서 까지의 경로에서 와 다른 마지막 정점이다.
- 루트가 있는 트리의 지름은 트리에서 가장 긴 단순 경로의 길이이다. 경로의 길이는 경로에 포함된 간선의 수이다.
입력
테스트 케이스는 여러 개이다. 입력의 첫 줄에 테스트 케이스의 수 가 주어진다. 각 테스트 케이스는 다음과 같다.
첫 줄에 루트가 있는 트리의 개수 이 주어진다.
이후 개의 줄 각각은 정수 로 시작하며, 이는 번째 트리의 정점 수이다. 같은 줄에 정수 가 이어서 주어지며, 번째 값은 번째 정점의 부모이다. 트리의 루트는 부모로 을 가진다.
모든 테스트 케이스에 걸쳐 의 합은 을 넘지 않는다.
출력
각 테스트 케이스마다 최대 지름과 최소 지름을 이 순서대로 두 정수로 출력한다.
힌트
첫 번째 예제에서 이 최대 지름을 주고, 이 최소 지름을 준다.