- 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 discuri de dimensiuni distincte, de la la , așezate pe 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 toate discurile cu dimensiuni din intervalul . 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, ) 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 și , reprezentând numărul de discuri, respectiv numărul de operații ale lui Kushnezeu. Pe fiecare din următoarele linii se vor afla un număr natural reprezentând numărul de discuri aflate inițial pe tija și apoi numere, reprezentând dimensiunile discurilor aflate pe tija , ordonate de la vârf către bază.
Pe următoarele linii se află descrierile operațiilor lui Kushnezeu: pe a -a linie se găsesc trei numere naturale , , , reprezentând faptul că pentru a -a operație Kushnezeu materializează toate discurile cu dimensiuni în intervalul pe tija .
Date de ieșire
Fișierul de ieșire babel.out
trebuie să conțină linii, a -a dintre acestea conținând un număr natural reprezentând răspunsul cerut de Kushnezeu după efectuarea primelor operații. Întrucât numărul de mutări poate fi foarte mare, acesta trebuie afișat modulo .
Restricții și precizări
- pentru
# | Scor | Restricții |
---|---|---|
1 | 7 | și |
2 | 4 | |
3 | 21 | |
4 | 27 | pentru fiecare |
5 | 23 | |
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 mutări pentru a aduce toate discurile pe aceeași tijă.
După prima operație a lui {Kushnezeu}, sunt necesare operații .
După ultima operație, se observă că toate discurile sunt deja pe tija , deci Matias nu trebuie să efectueze nicio mutare.
Stare inițială:
După prima operație a lui Kushnezeu (în care discul ajunge pe stiva ):
După a doua operație a lui Kushnezeu (în care discurile și ajung pe stiva ):