Hay un bosque con $N$ vértices. Los vértices están numerados del $1$ al $N$ y no hay aristas. Cada vértice $v$ tiene un entero $X_v$ cuyo valor inicial es $X_v = 1$.
Escriba un programa que realice las siguientes consultas.
- 1 $a$ $b$ $c$: Conecta los vértices $a$ y $b$ con una arista de peso $c$. La entrada solo contiene casos en los que el resultado de la consulta es un bosque.
- 2 $a$ $b$: Elimina la arista que conecta los vértices $a$ y $b$. La entrada solo contiene casos en los que existe una arista entre los dos vértices.
- 3 $a$: Cambia $X_a$ a $1 - X_a$. Luego, en el árbol que contiene a $a$, calcula lo siguiente:
- Sean $v_1, v_2, \dots, v_k$ los vértices del árbol. Calcula y muestra $\min_{1 \le i \le k}{\left\{ \sum_{1 \le j \le k}{dist(v_i, v_j) \times X_{v_j}} \right\}}$. $dist(v_i, v_j)$ es la suma de los pesos de todas las aristas en el camino de $v_i$ a $v_j$.
Entrada
La primera línea contiene el número de vértices $N$ y el número de consultas $Q$. Las siguientes $Q$ líneas contienen las consultas, una por línea.
Los números de vértice dados en las consultas (el $a$ y $b$ de las consultas 1 y 2, y el $a$ de la consulta 3) están cifrados y deben descifrarse antes de ejecutar la consulta. Si el número de vértice dado en la entrada es $x$ y el valor obtenido en la consulta 3 anterior es $S$, entonces el número de vértice descifrado es $(x - 1 + S) \bmod n + 1$.
Salida
Para cada consulta de tipo 3, muestra el valor calculado en una línea, en el orden en que aparecen las consultas en la entrada.
Restricciones
- $1 \le N \le 10^5$
- $1 \le Q \le 3 \times 10^5$
- $1 \le a, b \le N$
- $a \ne b$
- $1 \le c \le 10^8$
Ejemplos
Entrada 1
3 7 1 1 2 3 1 3 1 1 3 1 2 1 3 3 1 1 2 1 2 3 2
Salida 1
4 0 0
Entrada 2
5 17 1 1 5 10 1 3 1 7 1 5 2 5 1 3 4 2 2 3 1 1 4 1 6 2 5 2 3 1 3 2 3 2 1 2 1 2 3 4 2 5 1 1 4 5 2 2 3 4 1 3 5 9 3 5
Salida 2
18 2 0 0 9
Entrada 3
10 37 1 2 3 6428496 1 7 10 41603701 1 2 7 61903527 1 1 6 57606292 1 2 1 43682226 1 8 2 59090781 3 6 3 10 1 10 7 15269842 3 6 3 7 1 3 10 39799671 1 3 5 28501778 3 5 2 1 10 1 6 10 37641690 2 9 6 3 8 1 6 8 89420938 3 9 2 6 3 1 9 6 17757145 2 9 3 1 1 9 26575112 2 3 8 1 2 1 19670627 2 3 5 1 1 5 12760556 2 3 4 1 4 1 36949637 3 7 2 6 9 1 6 8 74850387 2 3 8 3 3 1 7 3 77007154 3 3
Salida 3
274612258 215521477 187109093 171839251 211638922 68332023 151324465 224010174 0 223740409