Babel

Time limit: 3s Memory limit: 256MB Input: babel.in Output: babel.out
  • Ah, mă bucur așa de mult că în sfârșit am terminat de construit turnul ăsta.
  • Có cây nào được tặng không? (Se dă un arbore?)
  • Non ci viene dato un albero. (Nu ni se dă un arbore)

După ce Kushnezeu i-a demolat turnul, Matias nu se mai înțelegea cu semenii săi, așa că s-a decis să se joace singur. Are în fața lui un joc format din NN discuri de dimensiuni distincte, de la 11 la NN, așezate pe 33 tije identice. Pe tot parcursul jocului, pe nicio tijă nu poate exista un disc de dimensiune mai mare așezat peste un disc de dimensiune mai mică. Cu alte cuvinte, ordinea dimensiunilor discurilor de pe fiecare tijă trebuie să fie strict descrescătoare, de la bază spre vârf. Se garantează că starea inițială a jocului respectă această regulă.

La o mutare, Matias poate lua un disc din vârful unei tije și să îl mute în vârful altei tije, doar dacă configurația care ar rezulta respectă regula de mai sus. Kushnezeu nu vrea să-l lase în pace, și decide că vrea și el să se joace. El își folosește puterea omnipotentă să materializeze pe tija tt toate discurile cu dimensiuni din intervalul [l,r][l, r]. Are grijă să le ordoneze descrescător și să le insereze corespunzător printre discurile aflate deja pe tijă, astfel încât să nu încalce regula de mai sus. Pentru configurația inițială și după efectuarea fiecărei astfel de operații transcendentale, îl întreabă pe Matias: "Care este numărul minim de mutări (modulo numărul meu favorit, 666 013666 \ 013) pentru a aduce toate discurile pe aceeași tijă?"

Cerință

Dată fiind configurația inițială a discurilor pe tije și toate operațiile lui Kushnezeu, ajutați-l pe Matias să răspundă corect la toate întrebările.

Date de intrare

Fișierul de intrare babel.in conține pe prima linie numerele naturale NN și QQ, reprezentând numărul de discuri, respectiv numărul de operații ale lui Kushnezeu. Pe fiecare din următoarele 33 linii se vor afla un număr natural kik_i reprezentând numărul de discuri aflate inițial pe tija ii și apoi kik_i numere, reprezentând dimensiunile discurilor aflate pe tija ii, ordonate de la vârf către bază.

Pe următoarele QQ linii se află descrierile operațiilor lui Kushnezeu: pe a ii-a linie se găsesc trei numere naturale lil_i, rir_i, tit_i, reprezentând faptul că pentru a ii-a operație Kushnezeu materializează toate discurile cu dimensiuni în intervalul [li,ri][l_i, r_i] pe tija tit_i.

Date de ieșire

Fișierul de ieșire babel.out trebuie să conțină Q+1Q + 1 linii, a ii-a dintre acestea conținând un număr natural reprezentând răspunsul cerut de Kushnezeu după efectuarea primelor i1i - 1 operații. Întrucât numărul de mutări poate fi foarte mare, acesta trebuie afișat modulo 666 013666 \ 013.

Restricții și precizări

  • 1N200 0001 \leq N \leq 200 \ 000
  • 0Q200 0000 \leq Q \leq 200 \ 000
  • 0kiN0 \leq k_i \leq N pentru 1i31 \leq i \leq 3
  • k1+k2+k3=Nk_1 + k_2 + k_3 = N
  • 1liriN1 \leq l_i \leq r_i \leq N
  • 1ti31 \leq t_i \leq 3
# Scor Restricții
1 7 Q=0Q = 0 și 1N101 \leq N \leq 10
2 4 Q=0, k1=1, k2=N1Q = 0,\ k_1 = 1,\ k_2 = N - 1
3 21 1N(Q+1)10 000 0001 \leq N \cdot (Q + 1) \leq 10 \ 000 \ 000
4 27 li=ril_i = r_i pentru fiecare 1iQ1 \leq i \leq Q
5 23 N,Q50 000N, Q \leq 50 \ 000
6 18 Fără restricții suplimentare.

Exemplul 1

babel.in

3 2
2 1 3
1 2
0
1 1 3
1 2 1

babel.out

3
2
0

Explicație

Inițial discurile sunt așezate ca în primul desen de mai jos. Se observă că este nevoie de 33 mutări (13, 21, 11)(1 \rightarrow 3,\ 2 \rightarrow 1,\ 1 \rightarrow 1) pentru a aduce toate discurile pe aceeași tijă.

După prima operație a lui {Kushnezeu}, sunt necesare 22 operații (21, 11)(2 \rightarrow 1,\ 1 \rightarrow 1).

După ultima operație, se observă că toate discurile sunt deja pe tija 11, deci Matias nu trebuie să efectueze nicio mutare.

Stare inițială:

După prima operație a lui Kushnezeu (în care discul 11 ajunge pe stiva 33):

După a doua operație a lui Kushnezeu (în care discurile 11 și 22 ajung pe stiva 11):

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