Se consideră o tablă de șah sub forma unei matrice cu linii si coloane conținând caracterele .
si #
. Celulele care conțin #
sunt considerate interzise și nu se pot așeza turnuri în ele. Celulele interzise nu blochează atacurile turnurilor.
Cerința
Să se calculeze , numărul de posibilități de a așeza turnuri în celulele neinterzise, astfel încât să nu existe doua turnuri așezate pe aceeași linie sau pe aceeași coloana. Deoarece acest număr poate fi foarte mare, se va determina modulo .
Date de intrare
Fișierul de intrare rooks.in
conține pe prima linie numerele si , iar pe fiecare dintre următoarele linii se afla câte caractere .
sau #
. Atenție, caracterele de pe o linie nu sunt separate prin spațiu.
Date de ieșire
Fișierul de ieșire rooks.out
conține un singur număr natural, numărul modulo .
Restricții și precizări
- ;
- Vor exista cel mult celule interzise
Exemplu
rooks.in
3 3
..#
##.
#.#
rooks.out
10
Explicație
Este o soluție cu zero turnuri, sunt patru soluții cu un turn, patru soluții cu două turnuri si o soluție cu trei turnuri.