Nikola nhỏ gần đây đã học được bảng cửu chương. Để tiếp tục học, cậu ấy đã nghĩ ra bài toán sau.
Cậu ấy tạo ra một bảng kích thước ~R \times S~. Trong mỗi ô của bảng, cậu viết một giá trị số nguyên và tự hỏi: Có bao nhiêu cách có thể để đi từ góc trên bên trái đến góc dưới bên phải của bảng bằng cách di chuyển mỗi bước sang phải hoặc xuống dưới, sao cho tích của tất cả các số trên đường đi (bao gồm cả ô bắt đầu và ô kết thúc) ít nhất là ~N~?
Vì hiện tại cậu không có thời gian, nên cậu đã nhờ bạn giúp đỡ. Vì số cách yêu cầu có thể rất lớn, chỉ cần in phần dư của số đó khi chia cho ~10^9 + 7~.
Input
- Dòng đầu tiên có các số nguyên ~R, S~ ~(1 \leq R, S \leq 300)~ và ~N~ ~(1 \leq N \leq 10^6)~.
- Trong ~R~ dòng tiếp theo, mỗi dòng có ~S~ số nguyên giữa ~1~ và ~10^6~ biểu diễn các số được viết trong mỗi ô của bảng.
Output
Trong dòng duy nhất in ra phần dư của số cách yêu cầu chia cho ~10^9 + 7~.
Chú thích
Trong các mẫu thử nghiệm có tổng giá trị ~20 \%~ điểm, sẽ có ~N \leq 300~. Trong các mẫu thử nghiệm có tổng giá trị ~20 \%~ điểm, sẽ có ~R, S \leq 100~, và tất cả các số trong bảng sẽ nhỏ hơn hoặc bằng ~10~. Trong các mẫu thử nghiệm có tổng giá trị bổ sung ~30 \%~, sẽ có ~R, S \leq 100~.
Sample Input 1
2 3 200
2 3 4
5 6 7
Sample Output 1
2
Sample Input 2
3 3 90
2 1 1
45 1 1
1 1 1
Sample Output 2
3
Sample Input 3
2 5 3000
1 2 3 4 5
6 7 8 9 10
Sample Output 3
3
Giải thích
Trong test đầu tiên, có ba cách khả dĩ:
- ~2 \Rightarrow 3 \Rightarrow 4 \Rightarrow 7~ - tổng tích là ~168~
- ~2 \Rightarrow 3 \Rightarrow 6 \Rightarrow 7~ - tổng tích là ~252~
- ~2 \Rightarrow 5 \Rightarrow 6 \Rightarrow 7~ - tổng tích là ~420~
Bình luận