Atunci când Vlad a văzut problema asta a zis bleah... Miki are o colecție de paralelipipede pe care le ține minte după dimensiunea laturilor lor, date prin trei variabile întregi , și .
Ea a stat cam mult să se gândească la paralelipipede și a inventat o operație de înmulțire pentru ele pe care o definește în felul următor: pentru două paralelipipede și paralelipipedul obținut are dimensiunile:
Ea ține să menționeze că aceasta nu este o înmulțire obișnuită și nu are proprietățile acesteia. Mai exact această operație nu este nici asociativă, deci nu este neapărat egal cu și nici comutativă, deci nu este neapărat egal cu . Așadar ordinea și parantezarea unei expresii care conține înmulțirea mai multor paralelipipede este foarte importantă, dar, pentru că suntem foarte drăguți și nu vrem să vă punem să parsați o astfel de expresie, o vom da exprima cu ajutorul unui arbore binar! Astfel vi se dă un arbore cu noduri. Nodurile sunt indexate de la la și se știe că nodul este mereu rădăcină. Nodurile pot fi de două tipuri:
- Tipul , nod de tip frunză (care nu are fii) în care regăsim un paralelipiped .
- Tipul , nod intern (care are exact doi copii): în stânga nodul indexat cu și în dreapta nodul indexat cu .
Definim valoarea unui nod ca fiind:
- Pentru un nod de tip valoarea sa este , unde sunt dimensiunile paralelipipedului aflat în frunza respectivă.
- Pentru un nod de tip valoarea sa este , unde este copilul stâng, iar este copilul drept al nodului respectiv.
Cerință
Se dau întrebări de forma:
- Se dă o frunză și un paralelipiped și vrem să știm care ar fi valoarea rădăcinii, , dacă am înlocui paralelipipedul aflat în frunza cu paralelipipedul dat.
Pentru fiecare întrebare vă roagă să afișați resturile împărțirii la pentru cele trei numere care compun valoarea rădăcinii.
Date de intrare
Pe prima linie se află două numere naturale, și , separate printr-un spațiu. Pe următoarele linii descriem nodurile arborelui. Pe a -a linie dintre cele descriem nodul cu indicele astfel:
- : nodul este frunză și dimensiunile paralelipipedului din el sunt .
- : nodul este nod intern, este fiul lui stâng și este fiul lui drept.
Următoarele linii descriu întrebările. Fiecare dintre aceste linii are formatul:
- unde reprezintă indicele frunzei care își schimbă dimensiunile paralelipipedului în .
Atenție! întrebările sunt doar ipotetice, deci o schimbare nu se păstrează pentru întrebările viitoare.
Date de ieșire
Se vor afișa linii, răspunsurile la întrebări în ordine. Fiecare dintre aceste linii trebuie să conțină trei valori naturale mai mici decât , separate prin câte un spațiu.
Restricții și precizări
- Se garantează că datele de intrare descriu un arbore binar cu rădăcina în nodul .
- Se garantează că toate nodurile date în întrebări sunt frunze (noduri de tip ) în arbore.
# Punctaj Restricții 1 22 2 25 și se garantează că arborele are adâncimea . 3 18 și se garantează că doar este diferit la noul paralelipiped. 4 11 5 24 Fără restricții suplimentare
Exemplul 1
stdin
5 3
2 2 3
1 1 0 1
2 4 5
1 0 2 1
1 1 1 1
4 1 2 3
5 0 1 1
4 0 2 2
stdout
1000000005 0 2
0 1 0
1000000005 2 2
Explicație
Pentru prima întrebare, arborele se modifică astfel:
Exemplul 2
stdin
15 10
2 2 3
2 4 5
2 6 7
2 8 9
2 10 11
2 12 13
2 14 15
1 1 5 2
1 2 2 2
1 1 1 0
1 12 0 1
1 1 3 1
1 4 1 1
1 5 1 0
1 5 1 2
10 1 7 1
11 2 3 1
9 2 1 1
14 1 0 3
8 1 2 3
15 5 1 0
15 2 1 9
13 1 2 1
8 0 1 2
10 1 3 1
stdout
999989503 999992207 51040
188 724 999998599
999999173 999999497 3960
2488 999999959 999989671
632 999998927 999998247
0 0 0
999991679 144 34464
999999351 999999767 704
632 999998927 999998247
999996335 999993823 20768