길이가 $N$인 수열 $A_1, A_2, \ldots, A_N$이 주어진다. 이때, 다음 쿼리를 수행하는 프로그램을 작성하시오.
1 i: $A_i$ 를 출력한다. ($1 \le i \le N$)2 x y t: 만약 $A_x, A_{x+1}, \ldots, A_y$ 중 $t$ 미만의 수가 있다면 이 쿼리를 무시한다. 그렇지 않다면 $A_x, A_{x+1}, \ldots, A_y$ 에 $t$를 뺀다. ($1 \le x \le y \le N$, $1 \le t \le 10^{18}$)3 x y t: $x \le i \le y$에 대해, $A_i = t + i - y$ 로 둔다. ($1 \le x \le y \le N$, $t - y + x \ge 0$, $1 \le t \le 10^{18}$)4 x y: $x \le i \le y$에 대해, $A_i = \lfloor \sqrt A_i \rfloor$로 둔다. ($1 \le x \le y \le N$)
입력
첫째 줄에 수열의 크기 $N$, 쿼리의 개수 $Q$가 주어진다. ($1 \le N \le 100{,}000$, $1 \le Q \le 500{,}000$)
둘째 줄에는 $A_1, A_2, \ldots, A_N$이 주어진다. ($1 \le A_i \le 10^{18}$)
이후 $Q$개의 줄에 위에서 설명한 것과 같은 쿼리가 주어진다.
출력
1 i 형태의 쿼리 결과를 순서대로 한 줄에 하나씩 출력한다.