给定一个长度为 $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 类型的查询,按照顺序每行输出一个结果。