트리와 쿼리 5

정점이 검은색과 흰색을 오가는 트리에서, 주어진 정점에서 가장 가까운 흰색 정점까지의 거리를 각 질의마다 구한다.

어려움9트리분할 정복동적 계획법최단 경로아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

NN개의 정점으로 이루어진 트리가 있다. 트리는 사이클이 없는 연결 무방향 그래프다. 정점에는 1번부터 NN번까지, 간선에는 1번부터 N1N-1번까지 번호가 붙어 있다. 처음에는 모든 정점이 검은색이다.

아래 두 종류의 쿼리를 처리하는 프로그램을 작성하시오.

  • 1 i: ii번 정점의 색을 뒤집는다. 검은색이면 흰색으로, 흰색이면 검은색으로 바꾼다.
  • 2 v: 흰색 정점 uu 중에서 vv까지의 거리가 가장 짧은 값을 출력한다. uuvv는 같아도 되므로 vv가 흰색이면 답은 0이다. 트리에 흰색 정점이 하나도 없으면 -1을 출력한다.

두 정점 사이의 거리는 두 정점을 잇는 경로에 놓인 간선의 개수다.

입력

첫째 줄에 정점의 개수 NN이 주어진다. (2N1000002 \le N \le 100000)

다음 N1N-1개의 줄에는 ii번 간선이 잇는 두 정점 번호 uuvv가 주어진다. (1u,vN1 \le u, v \le N)

그다음 줄에 쿼리의 개수 MM이 주어진다. (1M1000001 \le M \le 100000)

다음 MM개의 줄에는 쿼리가 한 줄에 하나씩 주어진다. 각 쿼리는 1 i 또는 2 v 형태이고, 1i,vN1 \le i, v \le N이다.

출력

2번 쿼리마다 답을 한 줄에 하나씩, 입력에 주어진 순서대로 출력한다.