합병

트리의 각 정점에 주 번호가 주어질 때, 주 경계를 지키면서 두 개의 연결된 그룹으로 나눌 수 없게 만들기 위해 필요한 최소 합병 횟수를 구한다.

어려움8트리그래프DFS동적 계획법아직 제출이 없습니다시간 제한3초메모리 제한256 MB

문제

JOI합중국에는 NN개의 도시가 있어서, 1번부터 NN번까지의 번호가 붙어있다. 또한, JOI합중국에는 N1N-1개의 국도가 있다. ii 번째(1iN11 \le i \le N-1) 국도는 A_iA\_i번 도시와 B_iB\_i번 도시를 양방향으로 잇는다. 어떤 두 도시에 대해서도, 국도 몇개를 이용하면 서로 오가는 것이 가능하다.

현재, JOI합중국은 1번부터 KK번까지의 번호가 붙어있는 KK개의 주로 나뉘어 있다. jj번 (1jN1 \le j \le N)도시는 S_jS\_j번 주에 속한다. 모든 주에는 적어도 하나의 도시가 속해 있다.

JOI합중국의 대통령인 KK이사장은, 이 나라가 분열하지 않을까 걱정이 되었다. 다음 조건을 모두 만족하도록 모든 도시를 2개의 그룹 XX, YY로 나누는 것이 가능할 때, JOI합중국은 분열가능한 상태라고 말한다.

  • 모든 도시는 그룹 XX혹은 그룹 YY에 속한다.
  • 그룹 XX에는 적어도 하나의 도시가 속해 있다.
  • 그룹 YY에는 적어도 하나의 도시가 속해 있다.
  • 모든 주에 대해서, 그 주에 있는 모든 도시는 모두 같은 그룹에 속해 있다.
  • 그룹 XX에 속한 어떤 두 도시에 대해서도, 그룹 XX에 속한 도시만을 경유해서 서로 오가는 것이 가능하다.
  • 그룹 YY에 속한 어떤 두 도시에 대해서도, 그룹 YY에 속한 도시만을 경유해서 서로 오가는 것이 가능하다.

KK이사장은, JOI합중국이 분열가능하지 않은 상태를 만들기 위해, 주를 합병하려고 한다. 한번의 합병은 두개의 주를 골라서 합치는 것을 말한다. 새로운 주는, 기존의 두 주에 속해 있던 도시 들이 속해있다. K이사장은 주를 최소한의 횟수만큼 합병하여 JOI합중국을 분열가능하지 않은 상태로 만들고 싶어한다.

도시와 국도의 위치, 현재 어떤 도시가 어떤 주에 속해있는가에 대한 상태가 주어졌을 때, JOI 합중국이 분열가능하지 않은 상태로 만들기 위한 합병의 최소 횟수를 구하는 프로그램을 작성하여라.

입력

표준 입력에서 다음과 같은 형식으로 주어진다. 모든 값은 정수이다.

NN KK

A_1A\_1 B_1B\_1

\vdots

A_N1A\_{N-1} B_N1B\_{N-1}

S_1S\_1

\vdots

S_NS\_N

출력

JOI합중국을 분열가능하지 않은 상태로 만들기 위한 합병의 최소횟수를 표준 출력의 첫째 줄에 출력하여라.

제한

  • 1N500 0001 \le N \le 500\ 000.
  • 1KN1 \le K \le N.
  • 1A_iN1 \le A\_i \le N (1iN11 \le i \le N-1).
  • 1B_iN1 \le B\_i \le N (1iN11 \le i \le N-1).
  • 어떤 두 도시에 대해서도, 국도 몇개를 이용하면 서로 오가는 것이 가능하다.
  • 1S_jK1 \le S\_j \le K (1jN1 \le j \le N)
  • 모든 kk (1kN1 \le k \le N)에 대해, S_j=kS\_j = k를 만족하는 jj (1jN1 \le j \le N)가 존재한다.