Il y a un arbre constitué de $N$ sommets. Les sommets sont numérotés de $1$ à $N$. Le sommet $i$ porte le nombre $a_i$. Initialement, $a_i = i$.
Soit $f(u, v)$ la suite formée par les nombres $a_{p_0}, a_{p_1}, \ldots, a_{p_t}$ sur le chemin $p_0 = u, p_1, p_2, \ldots ,p_t = v$ allant de $u$ à $v$, écrits dans l’ordre.
Vous devez exécuter la requête suivante :
u v: échanger $a_u$ et $a_v$. Ensuite, afficher le $w$ qui maximise $f(u, w)$. Les suites sont comparées dans l’ordre lexicographique.
Notez que les requêtes sont données en ligne. Reportez-vous à la section Entrée pour plus de détails.
Entrée
La première ligne contient la taille de l’arbre $N$ ($2 \le N \le 200\,000$).
Les $N-1$ lignes suivantes contiennent deux entiers $u, v$, signifiant qu’il existe une arête reliant les sommets $u$ et $v$ ($1 \le u, v \le N$).
La ligne suivante contient le nombre de requêtes $Q$ ($1 \le Q \le 200\,000$).
Les $Q$ lignes suivantes contiennent deux entiers $x, y$ ($1 \le x, y \le n$, $x \ne y$).
Pour obtenir $u, v$ à partir de $x, y$, on procède comme suit. Soit $last$ la réponse à la requête précédente ($last = 0$ s’il s’agit de la première requête). Alors $(u, v) = (((x + N - 1 + last) \bmod N) + 1,\ ((y + N - 1 + last) \bmod N) + 1)$.
Sortie
Afficher $Q$ lignes contenant les réponses aux requêtes.
Exemples
Entrée 1
3 1 2 2 3 4 3 1 3 2 2 1 1 3
Sortie 1
1 3 3 3
Entrée 2
10 9 8 10 3 2 3 10 9 1 10 6 4 4 1 1 5 6 7 15 8 10 2 8 9 8 8 2 9 1 2 8 1 4 4 1 6 2 6 9 7 8 4 2 4 3 10 2 1 9
Sortie 2
2 7 5 8 5 5 5 8 7 8 2 7 5 7 5