Busy Beaver는 자료구조 문제를 좋아하지만, 배열에서의 구간 쿼리를 다루는 자료구조 문제는 지루하다고 생각합니다. 그래서 그는 멀티셋(multiset)을 이용한 색다른 자료구조 문제를 고안했습니다!
양의 정수들의 멀티셋인 $a_1, \dots, a_L$로 이루어진 수열이 있습니다. 처음에 수열은 비어 있습니다. 즉, $L=0$입니다. 다음 연산들을 구현하십시오.
1 M K: 숫자 $M$이 $K$번 등장하는 멀티셋을 수열의 끝에 추가합니다.2 X Y: $a_X$와 $a_Y$의 합을 수열의 끝에 추가합니다. 각 값의 등장 횟수가 더해집니다. 예를 들어, 멀티셋 $\{1, 1, 2\}$와 $\{1, 2\}$의 합은 $\{1, 1, 1, 2, 2\}$로 정의됩니다.3 X M K: $f(a_X, M, K)$를 수열의 끝에 추가합니다. 여기서 $f(S, M, K)$는 $S$에 $M$이 $K$개 이상 있으면 $M$을 $K$개 제거한 것이고, $M$이 $K$개 미만으로 있으면 $M$을 $K$개 추가한 것입니다.4 X: $a_X$는 단 하나의 원소로 구성되어 있음이 보장됩니다. $a_X$의 이 단일 원소를 출력하십시오.
입력
첫 번째 줄에는 연산의 개수 $Q$ ($1 \le Q \le 5 \cdot 10^5$)가 주어집니다.
다음 $Q$개의 줄에는 각 연산이 주어집니다.
다음 사항이 보장됩니다:
- 연산 $2, 3, 4$에서 사용되는 인덱스 $X$와 $Y$는 연산 시점에 항상 수열 내에 존재합니다.
- 연산 $1$과 $3$에서 사용되는 값 $M$과 $K$는 $1 \le M, K \le 10^9$를 만족합니다.
- 모든 $4$번 유형 연산에 대해, $a_X$는 정확히 하나의 원소를 포함합니다.
출력
각 $4$번 유형 연산에 대해, 답을 한 줄에 출력하십시오.
채점
- ($10$점) 모든 $1$번 및 $3$번 유형 연산에서 $1 \le M \le 10$입니다.
- ($40$점) 모든 $3$번 유형 연산에서, 새로 추가되는 멀티셋은 $a_X$에서 $M$을 $K$개 제거하여 형성됨이 보장됩니다.
- ($50$점) 추가 제약 조건이 없습니다.
예제
입력 1
8 1 5 1 1 6 2 4 1 2 1 2 3 3 6 4 3 4 6 5 3 5 5 1 4 6
출력 1
5 6
참고
멀티셋은 다음과 같습니다:
- $a_1 = \{5\}$.
- $a_2 = \{6, 6\}$.
- $a_3 = \{5, 6, 6\}$.
- $a_4 = \{5, 6, 6, 6, 6, 6, 6\}$.
- $a_5 = \{5, 6\}$.
- $a_6 = \{6\}$.