환승역 찾기 게임

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

문제

Semia와 Hanbyeol은 환승역 찾기 게임을 하려고 한다.

환승역 찾기 게임은 트리로 이루어진 게임판에서 번갈아 가며 환승역을 찾는 게임이다. 트리의 모든 정점들은 11부터 KK까지의 색깔 중 하나로 칠해져 있다.

정점 pp가 노선 ii 위에 있다는 것은, 색이 ii인 서로 다른 두 정점 aa, bb가 존재하여 둘을 잇는 유일한 최단 경로 위에 pp가 존재한다는 것을 의미한다. aa, bb중 하나가 pp인 경우도 포함한다.

또, 정점 pp가 노선 1,2,,K1, 2, \cdots, K 위에 모두 있으면 pp는 환승역이라고 한다.

환승역 찾기 게임에서는 모든 환승역을 찾고 더 이상 환승역을 찾을 수 없다고 선언하면 높은 점수를 받기 때문에 둘은 게임판에 존재하는 환승역의 개수를 알고 싶어졌다. 둘을 도와서 환승역의 개수를 구해주자.

입력

입력의 첫째 줄에 트리의 정점의 개수 NN과 색깔의 종류 KK가 주어진다.

입력의 둘째 줄에는 각 정점에 칠해진 색깔 A_iA\_i가 공백으로 구분되어 주어진다.

입력의 다음 N1N-1개의 줄에는 트리 상에서 연결된 두 정점의 번호가 공백으로 구분되어 주어진다.

출력

첫째 줄에 환승역의 개수를 출력한다.

제한

  • 2N100,0002 \leq N \leq 100,000
  • 1K50,0001 \leq K \leq 50,000
  • 1A_iK1 \leq A\_i \leq K