Soit une suite $A_1, A_2, \ldots, A_N$ de longueur $N$. Écrire un programme qui exécute les requêtes suivantes :
1 i: Afficher $A_i$. ($1 \le i \le N$)2 x y t: S'il existe un nombre strictement inférieur à $t$ parmi $A_x, A_{x+1}, \ldots, A_y$, ignorer cette requête. Sinon, soustraire $t$ à chacun des $A_x, A_{x+1}, \ldots, A_y$. ($1 \le x \le y \le N$, $1 \le t \le 10^{18}$)3 x y t: Pour tout $x \le i \le y$, affecter $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: Pour tout $x \le i \le y$, affecter $A_i = \lfloor \sqrt A_i \rfloor$. ($1 \le x \le y \le N$)
Entrée
La première ligne contient deux entiers $N$ et $Q$, la longueur de la suite et le nombre de requêtes. ($1 \le N \le 100\,000$, $1 \le Q \le 500\,000$)
La deuxième ligne contient $A_1, A_2, \ldots, A_N$. ($1 \le A_i \le 10^{18}$)
Les $Q$ lignes suivantes contiennent chacune une requête comme décrit ci-dessus.
Sortie
Pour chaque requête de type 1 i, afficher une ligne avec le résultat dans l'ordre.
Exemples
Entrée 1
``` #### Sortie 1
```