소들의 정치

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

문제

농부 존의 소들은 $1 \dots N$번으로 번호가 매겨진 $N$개의 목초지($2 \le N \le 200{,}000$)에서 산다. 길이가 모두 $1$인 양방향 길이 정확히 $N - 1$개 있어서, 어떤 목초지에서 출발하든 다른 모든 목초지에 도달할 수 있다. 즉, 목초지와 길은 하나의 트리를 이룬다.

각 목초지 $i$는 부모 $P_i$($0 \le P_i \le N$)로 주어진다. 루트 목초지는 $P_i = 0$이며, 부모가 없다는 뜻이다.

소들은 $1 \dots K$번으로 번호가 매겨진 $K$개의 정당($1 \le K \le N/2$)을 만들었다. 모든 소는 정확히 하나의 정당에 속하며, 소 $i$는 정당 $A_i$($1 \le A_i \le K$)에 속한다. 각 정당에는 소가 최소 두 마리 있다.

정당의 범위란 그 정당에 속한 두 소 사이의 최대 거리이다. 두 소 사이의 거리는 두 소가 있는 목초지를 잇는 경로에 포함된 길의 개수이다.

예를 들어 정당 1이 소 1, 3, 6으로, 정당 2가 소 2, 4, 5로 이루어져 있고, 목초지가 아래처럼 연결되어 있다고 하자(정당 1에 속한 소는 양옆에 -가 붙어 있다).

  -3-
   |
  -1-
 / | \
2  4  5
      |
     -6-

정당 1에 속한 두 소 사이의 최대 거리는 3이고(소 3과 소 6 사이), 정당 2의 최대 거리는 2이다(예: 소 2와 소 4 사이). 따라서 정당 1의 범위는 3, 정당 2의 범위는 2이다.

각 정당의 범위를 구하라.

입력

  • 첫째 줄: 공백으로 구분된 두 정수 $N$과 $K$.
  • $2 \dots N+1$번째 줄: $i + 1$번째 줄에는 목초지 $i$를 나타내는, 공백으로 구분된 두 정수 $A_i$와 $P_i$가 주어진다.

출력

  • $1 \dots K$번째 줄: $i$번째 줄에 정당 $i$의 범위를 나타내는 정수 하나를 출력한다.