Doi Arbori

Time limit: 1.25s Memory limit: 256MB Input: Output:

Fie doi arbori GG și HH. Arborele GG are nodurile G1,,GNG_1, \dots , G_N, iar arborele HH are nodurile H1,,HNH_1, \dots , H_N. Pentru oricare uu și vv, se garantează că există o muchie între GuG_u și GvG_v dacă și numai dacă exista o muchie între HuH_u și HvH_v. Toate muchiile din arborii GG și HH au lungimea 11.

Frunzele dintr-un arbore pot fi conectate cu corespondentul lor din celălalt arbore printr-o muchie de lungime 00. Cu alte cuvinte, pentru oricare vv, frunza GvG_v poate fi conectată printr-o muchie cu frunza HvH_v. Dacă frunza GvG_v este conectată cu frunza HvH_v, atunci frunza respectivă se consideră activă, iar altfel este inactivă.

Inițial, toate frunzele sunt inactive. Avem două tipuri de operații:

  • 1 v — schimbă starea frunzelor GvG_v și HvH_v: devin active din inactive și vice-versa;
  • 2 u v — se cere să se afle lungimea celui mai scurt drum de la nodul GuG_u la nodul HvH_v.

Date de intrare

Pe prima linie a fișierului de intrare se află doi întregi NN și QQ — numărul de noduri și numărul de operații. Pe fiecare din următoarele N1N − 1 linii se află câte doi întregi u,v (1u,vN)u, v \ (1 ≤ u, v ≤ N) — structura arborilor — muchiile (Gu,Gv)(G_u, G_v) și (Hu,Hv)(H_u, H_v).

Fiecare dintre următoarele qq linii descriu operațiile. Fiecare operație este fie de forma 1 v (1vN)(1 ≤ v ≤ N), fie de forma 2 u v (1u,vN)(1 ≤ u, v ≤ N).

Date de ieșire

Pentru fiecare operație de tipul 22, în ordinea de la intrare, câte un întreg pe o linie — lungimea drumului minim dintre cele două noduri date. Dacă nu există un astfel de drum, se va afișa 1−1.

Restricții și precizări

  • 1N,Q200 0001 \leq N, Q \leq 200 \ 000
  • Fie KK numărul total de operații de tipul 22.
# Punctaj Restricții
1 3 1N,Q161 \leq N, Q \leq 16
2 3 1N16,1Q200 0001 \leq N \leq 16, 1 \leq Q \leq 200 \ 000
3 2 1N16,1Q200 0001 \leq N \leq 16, 1 \leq Q \leq 200 \ 000 și K5K \leq 5
4 8 1N,Q2 0001 \leq N, Q \leq 2 \ 000
5 9 1N,Q200 0001 \leq N, Q \leq 200 \ 000 și K5K \leq 5
6 30 1N,Q200 0001 \leq N, Q \leq 200 \ 000 și toate operațiile de tipul 11 apar înaintea tuturor operațiilor de tipul 22
7 45 Fără restricții suplimentare.

Exemplul 1

stdin

7 11
1 2
2 3
1 4
2 5
4 6
4 7
1 6
1 3
2 1 6
2 1 2
1 7
2 5 4
2 6 3
1 6
1 3
1 5
2 6 3

stdout

2
3
5
4
6

Explicație

Arborii GG și HH au următoarea structură.

Pentru prima interogare, structura arborelui este cea de mai jos. Un drum posibil este desenat cu roșu. Muchiile punctate au lungimea 00.

A doua interogare apare mai jos.

A treia interogare apare mai jos.

A patra interogare apare mai jos.

Ultima interogare apare mai jos.

Exemplul 2

stdin

2 2
1 2
1 1
2 1 2

stdout

1

Log in or sign up to be able to send submissions!