Chơi cờ vua (F div 1)

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 2100 Thời gian: 2.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Sau những trận đấu của kì euro đầy bất ngờ và kịch tính với đầy những quả miss pen và phản lưới, những trận bóng đã sút bay sổ đỏ và tiền bạc của bin9638 về nơi xa. Ngỡ như sẽ đi nhảy cầu giống như bao người anh em khác, nhưng bin9638 lại là người không dễ dàng từ bỏ. Vì vậy bin9638 đã tham gia giải cờ vua thế giới để kiếm tiền thưởng bù lại khoản lỗ.

bin9638 đánh với một bàn cờ đặc biệt gồm \(n\) hàng và \(m\) cột, ban đầu ở hàng thứ nhất anh ấy đặt một con mã ở vị trí bất kì. Mỗi nước đi con mã chỉ có thể tiến lên phía trước và đi theo hình chữ L giống như cờ vua. Giả sử con mã đang ở ô \((1;3)\) thì chỉ được đi tới ô \((2;1),(2;5),(3;2)\) hoặc \((3;4)\), ngoài ra con mã cũng không được đi ra ngoài bàn cờ. Tuy nhiên vì bàn cờ của bin9638 dùng là một bàn cờ siêu cổ, từ thời Napoleon đánh cầu lông ăn tiền nên bàn cờ có \(k\) ô đã bị hỏng, tức là không thể đặt quân cờ trên đó.

Bây giờ bin9638 muốn tính xem có bao nhiêu cách đi để đưa con mã tới hàng cuối cùng ( hàng \(n\) ), nhưng vì mải xem euro nên anh ấy đành nhờ các bạn giải giúp vậy !

Input

  • Một dòng gồm 3 số nguyên dương \(n\), \(m\)\(k\).
  • \(k\) dòng tiếp theo mỗi dòng là \(2\) số nguyên dương \(x, y\) (\(x \le n, y \le m\)) biểu thị ô \((x;y)\) đã bị hỏng.

Output

  • Gồm một số duy nhất là kết quả khi chia lấy dư cho \(10^9+7\).

Example

Test 1

Input
2 3 2
1 1
2 2
Output
1

Test 2

Input
4 4 2
3 4
4 4
Output
10
Note

Giải thích: ở ví dụ \(2\) ta có bảng cách đi như sau ( phía dưới cùng hình là hàng \(1\) )

Scoring

  • Subtask \(1\) (\(20\%\) số điểm): \(n \le 10^5, m \le 50, k \le 50.\)
  • Subtask \(2\) (\(20\%\) số điểm): \(n \le 10^{18}, m \le 50, k = 0.\)
  • Subtask \(3\) (\(30\%\) số điểm): \(n \le 10^{18}, m \le 10, k \le 50.\)
  • Subtask \(4\) (\(30\%\) số điểm): \(n \le 10^{18}, m \le 50, k \le 50.\)

Bình luận (1)

Mới nhất
Tải bình luận...

Kỳ thi: