Grozne granice

아직 제출이 없습니다시간 제한1.5초메모리 제한1024 MB

문제

Države Europske Unije možemo zamisliti kao graf u kojem između svake dvije države postoji točno jedan put, tj. kao stablo. Države su označene brojevima od 11 do nn s time da je Hrvatska označena brojem 11. Kako ove godine Gospodin Malnar predsjeda Europskom unijom, potrebno je organizirati brojne sastanke. Predstavnici država su čudni te se jako vole kretati u grupama, stoga pri svom putovanju za Hrvatsku, prvo će se u svakoj državi sastati svi oni koji na svom putovanju prolaze kroz tu državu te će potom zajedno s predstavnikom te države nastaviti svoje putovanje kao grupa do sljedeće države, gdje će se opet spojiti zajedno s još predstavnika sve dok se svi zajedno ne nađu na sastanku u čvoru 1. (Za detaljnije objašnjenje pogledati objašnjenje prvog primjera.)

Nažalost, među državama Europske Unije uvedena je carina na ljude! Za svaku državu poznata je njezina carina c_ic\_i te će svaka osoba morati platiti tu cijenu prilikom ulaska u državu, naravno predstavnici države ne plaćaju carinu u svojoj državi. No, carinici su cinični prema cijeloj ideji Europske Unije, pa su u svakoj državi odlučili najvećoj grupi ljudi koja zajedno dolazi naplatiti dvostruku cijenu, ako ima više jednako velikih grupa naplatit će onoj koja dolazi iz države s najmanjom oznakom. Promjene su u Europskoj Uniji burne pa vas je gospodin Malnar zamolio da podržite tri ključne operacije:

  • 11 vv - kada bi se trenutno održao sastanak, koliko novaca bi morao platiti predstavnik države vv
  • 22 vv cc - država vv mijenja cijenu carine na cc
  • 3 vv cc - pojavila se nova država s oznakom kk, kk je najmanji prirodan broj takav da ne postoji država s tom oznakom, koja ima carinu cc te je spojena na državu vv

Gospodin Malnar izgubljen je među svim obavezama te vas moli da napravite program s kojim će moći brzo odgovarati na ova pitanja. Sljedeća dva tjedna su ključna!

입력

U prvom su retku brojevi nn i qq (1n,q1051 ≤ n, q ≤ 10^5) koji označavaju početni broj država te broj operacija.

U sljedećem retku nalazi se nn brojeva od kojih ii-ti označava c_ic\_i (0c_i1090 ≤ c\_i ≤ 10^9), tj. carinu ii-te države.

U sljedećih n1n - 1 redaka nalaze se brojevi u_iu\_i te v_iv\_i (1u_i,v_in1 ≤ u\_i , v\_i ≤ n, u_iv_iu\_i \ne v\_i) koji označavaju da su države u_iu\_i te v_iv\_i spojene bridom.

Neka lastans označava odgovor na zadnju operaciju tipa 11 u nekom trenutku, odnosno lastans=0lastans = 0 ako nije bilo operacija tipa 11. Neka je kk najveća oznaka neke države do tog trenutka. Neka označava bitovnu operaciju xor.

Ako je ii-ti događaj tipa 11, onda se u retku nalaze brojevi 11 vv' (0v10180 ≤ v' ≤ 10^{18}, 1v1 ≤ v ≤ k) te je v=vlastansv = v' ⊕ lastans.

Ako je ii-ti događaj tipa 22, onda se u retku nalaze brojevi 22 vv' cc' (0v,c10180 ≤ v' , c' ≤ 10^{18}, 1vk1 ≤ v ≤ k, 0c1090 ≤ c ≤ 10^9) te je v=vlastansv = v' ⊕ lastans, c=clastansc = c' ⊕ lastans.

Ako je ii-ti događaj tipa 33, onda se u retku nalaze brojevi 33 vv' cc' (0v,c10180 ≤ v' , c' ≤ 10^{18}, 1vk1 ≤ v ≤ k, 0c1090 ≤ c ≤ 10^9) te je v=vlastansv = v' ⊕ lastans, c=clastansc = c' ⊕ lastans.

출력

Potrebno je u ii-tom retku ispisati odgovor na ii-tu operaciju tipa 11.

힌트

Pojašnjenje prvog probnog primjera: Zato što je tek četvrta operacija prva tipa 11, lastans=0lastans = 0 te operacija nije mijenjanja. Predstavnik države 22 putuje u državu 33 i plaća dvostruku carinu 66 zato što je jedina te stoga i najveća grupa koja ulazi u taj grad. Sada predstavnici iz gradova 22 i 33 zajedno ulaze u grad 66, zato što se ta grupa sastoji od dvoje ljudi, a grupa iz čvora 77 od samo jedne osobe, oni plaćaju dvostruku carinu tj. predstavnik grada 22 plaća carinu 66. Nakon toga zajedno predstavnici država 22, 33, 66 i 77 putuju u državu 11 te opet plaćaju dvostruku carinu kao najveća grupa, stoga predstavnik države 22 plaća 88. To čini ukupnu svotu 6+6+8=206 + 6 + 8 = 20.

U petoj operaciji lastans=20lastans = 20 stoga je v=1620=5v = 16 ⊕ 20 = 5. Predstavnik države 55 sam putuje u državu 11, zato što nije najveća grupa plaća jednostruku carinu tj. 44.