센트럴시티의 갱단

루트가 있는 트리에서 리프를 갱 점거 상태로 바꾸는 갱신이 있을 때마다, 막아야 할 최소 파이프 수와 물이 끊기는 무고한 집의 최소 개수를 구한다.

보통7트리그리디DFS아직 제출이 없습니다시간 제한2초메모리 제한256 MB

문제

센트럴시티의 상수도망은 뿌리 있는 트리다. 저수지는 뿌리인 1번 정점에 있고, 집은 모두 잎에 있다. 물은 저수지에서 출발해 트리의 간선인 수도관을 따라 흐르므로 모든 집에 물이 들어온다.

갱단이 집 몇 채를 점거했다. 시장인 당신은 갱단이 점거한 집에 물이 가지 않도록 만들려고 한다. 수도관은 막을 수 있고, 저수지에서 어떤 집으로 가는 경로에 막힌 수도관이 하나라도 있으면 그 집에는 물이 들어오지 않는다.

사고처럼 보여야 하므로 막는 수도관의 개수를 최소로 한다. 그 최소 개수로 막는 방법 중에서는 갱단이 없는데도 물이 끊기는 집의 수를 최소로 한다.

갱단은 집에 들어오기도 하고 나가기도 한다. 변화가 한 번 일어날 때마다 막아야 하는 수도관의 최소 개수와, 그 개수만큼 막았을 때 갱단이 없으면서 물이 끊기는 집의 최소 개수를 구하라.

입력

첫째 줄에 트리의 정점 수 nn과 변화의 횟수 qq가 주어진다 (2n1000002 \le n \le 100000, 1q1000001 \le q \le 100000).

둘째 줄에 n1n - 1개의 정수 p2,p3,,pnp_2, p_3, \dots, p_n이 주어진다. pip_i는 정점 ii의 부모이다 (1pi<i1 \le p_i < i). 저수지는 1번 정점이고, 모든 잎은 집이다.

다음 qq개의 줄에는 변화가 한 줄에 하나씩 주어진다. "+ v"는 갱단이 vv번 정점의 집을 점거한다는 뜻이고, "- v"는 갱단이 그 집에서 나간다는 뜻이다. vv는 항상 잎이다. 처음에는 점거된 집이 하나도 없다. 입력에는 모순이 없다. 갱단은 이미 점거한 집을 다시 점거하지 않고, 점거하지 않은 집에서 나가지도 않는다.

출력

qq개의 줄에 각각 두 정수를 출력한다. ii번째 줄에는 ii번째 변화가 끝난 뒤 막아야 하는 수도관의 최소 개수와, 그 개수만큼 막았을 때 갱단이 없으면서 물이 끊기는 집의 최소 개수를 출력한다. 점거된 집이 하나도 없으면 0 0을 출력한다.