Một robot được thiết kế để di chuyển trên một lưới hình chữ nhật gồm \(M\) hàng và \(N\) cột. Robot ban đầu được định vị tại \((1, 1)\), tức là ô trên cùng bên trái. Robot phải tiếp cận tế bào lưới \((M, N)\). Trong một bước duy nhất, robot chỉ có thể di chuyển đến các tế bào theo hướng đông và nam ngay lập tức. Điều đó có nghĩa là nếu robot hiện đang ở \((i, j)\), nó có thể di chuyển đến ô \((i+1, j)\) hoặc \((i, j+1)\), miễn là robot không rời khỏi lưới.
Bây giờ ai đó đã đặt một số chướng ngại vật ở các vị trí ngẫu nhiên trên lưới, qua đó robot không thể vượt qua. Với vị trí của các ô bị chặn, nhiệm vụ của bạn là đếm số đường đi mà robot có thể đi để di chuyển từ \((1, 1)\) đến \((M, N)\). Vì câu trả lời có thể rất lớn, hãy đưa ra câu trả lời modulo \(100000007\).
Dữ liệu vào
- Dòng đầu tiên chứa \(3\) số nguyên \(M, N\) và \(P\) biểu thị số lượng hàng, số cột và số ô bị chặn tương ứng.
- Trong \(P\) dòng tiếp theo, mỗi dòng chính xác \(2\) số nguyên \(i\) và \(j\) biểu thị rằng ô \((i, j)\) bị chặn.
Dữ liệu ra
- Đầu ra phải chứa một số nguyên duy nhất, số lượng đường đi của robot.
Ràng buộc
- \(1 \le M,N \le 1000\)
- \(0 \le P \le M \times N\)
Input 1
4 3 2
3 3
3 1
Output 1
2
Nhận xét