Mircea şi Andrei sunt pasionaţi de construcţiile realizate din piese Lego. Fiecare dintre ei are un set format din cuburi negre de latură şi mai multe piese paralelipipedice de culoare albă cu care va construi o clădire de formă paralelipipedică având baza un pătrat de latură şi înălţimea .
Toate piesele de culoare albă au înălţimea iar celelalte laturi egale cu şi nu pot fi răsturnate în momentul în care se asamblează pentru a construi clădirea. Aceasta va conţine întotdeauna toate piesele negre din set şi atâtea piese de culoare albă cât e necesar pentru finalizarea ei.
În momentul finalizării clădirii, cei doi băieţi observă că deşi au folosit aceleaşi seturi de piese, cele două clădiri sunt diferite deoarece combinaţiile de culori alb-negru de pe faţadele (nordică, sudică, vestică sau estică) clădirilor nu arată la fel.
Cerinţă
Scrieţi un program care să calculeze numărul de clădiri diferite care se pot construi cu piesele date, ştiind că două clădiri sunt identice dacă sunt îndeplinite simultan următoarele condiţii:
- faţada dinspre nord a uneia este identică cu faţada dinspre nord a celeilalte;
- faţada dinspre est a uneia este identică cu faţada dinspre est a celeilalte;
- faţada dinspre sud a uneia este identică cu faţada dinspre sud a celeilalte;
- faţada dinspre vest a uneia este identică cu faţada dinspre vest a celeilalte.
Programul va afişa restul împărţirii numărului la .
Date de intrare
Din fişierul cladire.in
se citesc două numere naturale şi (în această ordine), separate printr-un spaţiu şi având semnificaţia din enunţ.
Date de ieșire
În fişierul cladire.out
se va scrie pe prima linie un singur număr natural ce reprezintă restul împărţirii numărului la .
Restricții și precizări
- sunt numere naturale şi este număr par;
- şi ;
- există atâtea piese albe câte sunt necesare;
- o piesă de culoare albă se va aşeza întotdeauna cu baza de latură , peste o altă piesă a clădirii sau la baza acesteia;
- cu piesele date se poate construi cel puţin o clădire;
- pentru din teste .
Exemplul 1
cladire.in
2 2
cladire.out
4
Explicație
Exemplul 2
cladire.in
4 3
cladire.out
16