Avem o jucărie formată din pătrate de latură dispuse ca într-o matrice cu linii și coloane. Liniile și coloanele matricei sunt numerotate de la la , iar este mereu impar. Pătrățelele pot fi albe și le vom codifica , sau negre și le codificăm . Împărțim matricea în zone concentrice astfel: zona este formată din linia , coloana , linia și coloana ; zona este formată din linia a -a, coloana , linia , coloana etc. Sunt astfel de zone. În mijlocul matricei este, evident, un singur element, fiind impar. Asupra oricărei zone putem aplica o operație de rotire, doar spre stânga. Iată în figura de mai jos efectul unei operații de rotire "de lungime" , asupra unei zone.
În figurile de mai jos culorile de fundal ale pătrățelelor au doar rolul de a pune în evidență zonele (cu gri închis este zona și cu gri mai deschis zona ). Dorim să aplicăm asupra jucăriei un set de rotiri așa încât "să rezolvăm jucăria". Asta înseamnă că toate pătrățelele de pe linia din mijloc și cele de pe coloana din mijloc să devină negre.
Observăm în figura din dreapta că linia și coloana sunt pline de . Pentru aceasta, am aplicat o rotire de lungime asupra zonei și o rotire de lungime asupra zonei . Codificăm această soluție cu (). Altă soluție este cea codificată prin ().
Cerința
Dată fiind codificarea jucăriei, precum și "lungimea" maximă permisă pentru o rotire în oricare zonă, să se determine numărul de posibilități de a aplica rotiri asupra zonelor așa încât să rezolvăm jucăria. Evident, unei zone i se poate aplica o singură rotire, de lungime cuprinsă între și valoarea maximă permisă.
Date de intrare
Fișierul cubic.in
conține pe prima linie două numere și , separate printr-un spațiu, reprezentând dimensiunea jucăriei respectiv lungimea maximă permisă pentru rotirile din oricare zonă. Pe fiecare din următoarele linii se află câte numere care pot fi sau , neseparate de spații.
Date de ieșire
Fișierul cubic.out
conține pe prima linie numărul de posibilități de a aplica rotiri asupra zonelor, pentru a rezolva jocul. Două posibilități se consideră distincte dacă diferă prin lungimea rotirii din cel puțin o zonă. Pentru că acest număr poate fi foarte mare, se va afișa restul împărțirii lui la .
Restricții și precizări
- , este impar.
- ;
Exemplu
cubic.in
5 3
11001
00111
11111
11111
11111
cubic.out
4
Explicație
Soluțiile sunt , , , .