Zăhărel are un set de becuri colorate cu culori (pentru uşurinţă vom considera culorile numerotate de la la ). Fiecare bec este special, în sensul că are un comutator care îi schimbă culoarea curentă astfel:
- dacă , culoarea devine
- dacă , culoarea devine
Zăhărel doreşte să comute anumite becuri astfel încât toate să aibă aceeaşi culoare . Totusi, sarcina lui nu este atât de simplă, deoarece nu poate comuta becurile direct, ci trebuie să folosească o telecomandă cu butoane. Apăsarea unui buton afectează fiecare bec, mai exact, pentru fiecare buton se dau valori cu semnificaţia că becul este comutat de ori când se apasă butonul .
Cerință
Scrieţi un program care determină în câte moduri poate folosi Zăhărel cele butoane astfel încât toate becurile să aibă culoarea .
Date de intrare
Fişierul de intrare color.in
conţine pe prima linie numerele naturale separate prin spaţii. Următoarea linie va conţine numere naturale separate prin spaţii reprezentând culorile iniţiale ale becurilor, în ordine de la la . Următoarele linii vor conţine câte numere naturale , separate prin spaţii, descriind butonul .
Date de ieșire
În fişierul de ieşire color.out
se va scrie pe prima linie numărul de moduri de a folosi telecomanda, astfel încât toate becurile să aibă culoarea . Rezultatul se va afişa modulo .
Restricții și precizări
- La corectare se vor folosi teste. Ele vor avea următoarele valori pentru , si :
Test | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
N | 13 | 64 | 100 | 150 | 200 | 128 | 99 | 150 | 200 | 200 |
M | 20 | 64 | 99 | 101 | 199 | 169 | 125 | 150 | 175 | 200 |
K | 47 | 9973 | 30011 | 666019 | 15485863 | 9699690 | 602329 | 28447459 | 149662546 | 160213270 |
- Un buton de pe telecomandă poate fi apăsat de un număr de ori mai mic decât
Exemplu
color.in
4 6 2 1
1 2 1 2
1 0 1 0
0 1 0 1
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
color.out
4
Explicație
Cele posibilităţi sunt:
- butonul
- butoanele
- butoanele
- butoanele