Aflându-se la moșia lui Pascalopol, Otilia este fascinată de vasta întindere de pământ pe care bărbatul o deține. Cum Pascalopol este un om darnic și îi face toate poftele Otiliei, încă de când era mică, acesta îi dăruiește tinerei o bucată de pământ de dimensiune N*M împărțită în parcele de dimensiune 1*1, dispuse pe N linii și M coloane (numerotate de la 1 la N, respectiv de la 1 la M). Astfel, fiecare parcelă poate fi identificată prin coordonatele (i,j), unde i reprezintă linia, iar j reprezintă coloana pe care se află parcela.
Bucata de pământ conține și gropi. O parcelă care este groapă este reprezentată prin numărul 1, în timp ce o parcelă care nu este groapă este reprezentată prin numărul 0. Pentru că Felix este gelos pe Pascalopol și nu suportă ca Otilia să-i ofere atât de multă atenție, tânărul i-a pus următoarea întrebare moșierului, vrând prin aceasta să-i arate că el este net superior din punct de vedere informatic:
“- Dacă eu plec din parcela (1,1), iar calul meu poate face un salt cu orice lungime între 1 și K la sud (linia crește) sau la est (coloana crește), în câte moduri pot ajunge în parcela (L,C), ținând cont că nu pot păși pe o parcelă care conține o groapă.”.
Mai formal, dintr-o parcelă de coordonate (i, j), calul se poate deplasa cu un salt în oricare dintre parcelele de coordonate (i+x, j) sau (i, j+x) (1 ≤ x ≤ K) doar dacă parcela este reprezentată prin numărul 0.
Două succesiuni de salturi sunt distincte dacă au număr diferit de salturi sau dacă există o parcelă prin care trece doar una dintre cele două succesiuni.
Pentru că numărul poate fi foarte mare, Felix se mulțumește doar cu restul acestuia la împărțirea cu 1.000.000.007.
Cerința
Cum Pascalopol nu le are cu calculatoarele, iar aceasta este clar o problemă de Informatică, moșierul vă cere ajutorul și vă va oferi în schimb 100 de puncte.
Date de intrare
Fișierul de intrare enigma.in conține pe prima linie numerele naturale N, M, L și C, reprezentând numărul de linii și numărul de coloane ale bucății de pământ, respectiv coordonatele parcelei în care Felix vrea să ajungă. Pe următoarele N linii se vor afla câte M valori 0 sau 1, unde 1 reprezintă o parcelă care este groapă, iar 0 reprezintă o parcelă care nu este groapă. Pe ultima linie se va afla numărul K, reprezentând lungimea maximă a unui salt pe care calul lui Felix îl poate face.
Date de ieșire
Fișierul de ieșire enigma.out va conține o singură linie pe care va fi scris numărul de moduri în care calul poate ajunge din parcela (1,1) în parcela (L,C) prin modalitatea descrisă în enunț, modulo 1.000.000.007.
Restricții și precizări
1 ≤ N, M, K ≤ 1000- Se garantează că Felix vrea să ajungă într-o parcelă care nu este groapă, iar parcela
(1,1)nu este groapă. - Calul nu poate călca pe o parcelă care este groapă, dar poate efectua un salt peste una sau mai multe parcele care sunt gropi.
- Pentru 9 puncte,
1 ≤ N, M, K ≤ 7 - Pentru 11 puncte,
1 ≤ N, M ≤ 1000, iarK = 1 - Pentru 25 de puncte,
1 ≤ N, M, K ≤ 1000și nu există nicio parcelă groapă - Pentru 25 de puncte,
8 ≤ N, M, K ≤ 100 - Pentru 30 de puncte,
101 ≤ N, M, K ≤ 1000
Exemplul 1:
enigma.in
5 5 4 3 0 0 1 1 1 1 0 1 0 0 1 0 0 0 0 0 1 0 1 0 0 1 1 1 0 2
enigma.out
2
Explicație
Cele două drumuri posibile sunt: (1,1) → (1,2) → (2,2) → (3,2) → (3,3) → (4,3), respectiv (1,1) → (1,2) → (3,2) → (3,3) → (4,3).
Exemplul 2:
enigma.in
5 5 4 3 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 3
enigma.out
17