닮은 트리 세기
시간 제한2초메모리 제한512 MB
간선 양 끝 라벨의 차이를 보존하는 동형 사상이 존재하는 라벨 트리끼리 묶어 각 그룹의 크기를 출력한다.
문제
트리 는 사이클이 없는 연결 그래프다. 여기서 은 정점 집합이고 은 간선 집합이다. 라벨이 붙은 트리는 정점마다 서로 다른 정수 하나가 붙어 있는 트리다. 즉 일대일 함수 가 하나 주어진다.
에 대해 로 정의한다. 라벨이 붙은 두 트리 과 가 다음 세 조건을 모두 만족하면 서로 닮았다고 한다.
- 이다.
- 전단사 함수 가 있어서, 인 것과 인 것이 서로 동치다. 즉 두 트리는 동형이다.
- 모든 에 대해 이다.

그림 1: 서로 닮은 트리 과 .
그림 1의 두 트리는 이 정의에 따라 닮았고, 는 그림에 그려진 대응이다. 예를 들어 이고, 이고, 이다.
라벨이 붙은 트리 개가 주어진다. 닮음은 동치관계이므로 트리는 서로 닮은 것끼리 그룹으로 나뉜다. 각 그룹의 크기를 구하라.
입력
첫 줄에 라벨이 붙은 트리의 개수 가 주어진다 (). 이어서 트리를 하나씩 두 줄로 나타낸다.
트리의 첫 줄에는 그 트리의 간선이 모두 놓인다. 간선 하나를 양 끝 정점의 번호 두 개로 나타내므로, 정점이 개인 트리에서는 이 줄에 정수가 개 놓인다. 정점 번호는 부터 까지다. 을 따로 주지 않으므로 이 줄에 놓인 정수의 개수로 알아내야 한다. 트리의 두 번째 줄에는 정점 의 라벨 이 이 순서로 주어진다.
이고 이다. 한 트리 안의 라벨은 모두 다르다.
출력
각 그룹의 크기를 작은 것부터 차례로 한 줄에 공백으로 구분해 출력한다. 같은 크기가 여러 번 나올 수 있다. 어떤 트리와도 닮지 않은 트리는 크기가 인 그룹이 되고, 출력한 수의 합은 다.