개의 정점으로 이루어진 트리가 주어진다. 정점은 번으로 번호가 붙어 있으며, 처음에 번 정점에는 값 가 적혀 있다.
다음 개의 질의를 순서대로 처리하여라. 모든 질의를 처리하는 동안, 각 질의가 끝난 뒤의 그래프는 항상 트리임이 보장된다.
0: 현재 존재하는 간선 를 삭제하고, 간선 를 추가한다.1: 로 값을 갱신한다.2: 현재 존재하는 간선 에서 를 의 부모 쪽 정점으로 본다. 이 간선을 제거했을 때 가 속한 연결 컴포넌트에 있는 모든 정점의 값의 합을 출력한다.
Input
입력은 다음과 같은 형식으로 주어진다.
는 처음 트리의 번 간선을 나타낸다. 각 질의는 문제 설명에 나온 세 형식 중 하나로 주어진다.
Output
2번 질의마다, 요구한 정점 값의 합을 한 줄에 하나씩 출력한다.
Constraints
- .
- ().
- ().
- 처음 주어지는 간선들은 트리를 이룬다.
0번 질의에서 삭제하는 간선 는 현재 존재한다.0번 질의가 끝난 뒤 그래프는 트리이다.1번 질의에서 , 이다.2번 질의에서 간선 는 현재 존재한다.
Subtasks
Samples
입력
5 7
1 10 100 1000 10000
0 1
1 2
2 3
1 4
2 1 2
1 1 100000
2 1 2
0 1 2 2 0
2 0 2
0 2 3 3 1
2 1 4
출력
10011
110011
110011
101111
첫 번째 질의에서는 간선 를 기준으로 번 정점 쪽 컴포넌트에 번 정점이 있으므로 합은 이다.
이후 번 정점의 값이 이 되므로, 두 번째 질의의 답은 이다.
남은 질의들도 같은 방식으로 현재 트리에서 해당 간선을 기준으로 한쪽 컴포넌트의 합을 계산한다.