트리와 깃발

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

문제

머슥은 NN개의 정점이 있는 트리와 MM종류의 깃발들을 가지고 있다. 깃발의 종류는 11부터 MM까지의 정수로 표현된다. 각 정점은 00개 이상 MM개 이하의 서로 다른 깃발을 가질 수 있다.

주어진 트리에서 두 개의 서로 다른 정점을 선택하고, 각 정점에서 깃발을 하나씩 선택할 때, 두 깃발이 같은 종류라면 두 정점을 잇는 간선을 추가할 수 있다.

주어진 트리에서 각 간선을 제거했을 때, 위 조건에 따라 깃발을 선택하여 간선을 추가하면 다시 하나의 트리가 되도록 깃발을 고르는 경우의 수를 구하여라.

입력

첫째 줄에 N, MN,\ M이 공백을 사이에 두고 주어진다. (2N500 000;(2 \le N \le 500\ 000; 1M500 000)1 \le M \le 500\ 000)

둘째 줄부터 N1N-1개의 줄에 걸쳐 트리의 간선들이 주어진다. ii번째 줄에는 두 개의 정수 A_iA\_i, B_iB\_i가 공백을 사이에 두고 주어진다. 이는 ii번 간선이 A_iA\_i번 정점과 B_iB\_i번 정점을 연결함을 의미한다. (1A_i, B_iN;(1 \le A\_i,\ B\_i \le N; 1i<N;1 \le i \lt N; A_iB_i)A\_i \ne B\_i)

이어서 MM개의 줄에 걸쳐 jj번째 줄에는 C_jC\_j 와 종류가 jj인 깃발을 가지고 있는 C_jC\_j개의 서로 다른 정점들이 공백을 사이에 두고 주어진다. (0C_j500 000(0 \le C\_j \le 500\ 000; 1jM;1 \le j \le M; _j=1MC_j500 000)\sum\_{j=1}^{M}C\_j \le 500\ 000)

출력

N1N-1개의 줄에 걸처 ii번째 줄에 트리의 ii번 간선을 제거했을 때, 다시 하나의 트리가 되도록 깃발을 고르는 경우의 수를 구하여라.