Điểm:
300 (p)
Thời gian:
1.0s
Bộ nhớ:
640M
Input:
bàn phím
Output:
màn hình
Bờm chơi trò chơi điện tử Lucky Luke đến màn phải điều khiển Lucky leo lên một cầu thang gồm \(n\) bậc.
Các bậc thang được đánh số từ \(1\) đến \(n\) từ dưới lên trên. Lucky có thể đi lên một bậc thang, hoặc nhảy một bước lên hai bậc thang. Tuy nhiên một số bậc thang đã bị thủng do cũ kỹ và Lucky không thể bước chân lên được. Biết ban đầu, Lucky đứng ở bậc thang số \(1\) (bậc thang số \(1\) không bao giờ bị thủng).
Chơi đến đây, Bờm chợt nảy ra câu hỏi: có bao nhiêu cách để Lucky leo hết được cầu thang? (nghĩa là leo đến bậc thang thứ \(n\)). Bờm muốn nhờ bạn trả lời câu hỏi này.
Input
- Dòng đầu tiên chứa 2 số nguyên \(n\) và \(k\), là số bậc của cầu thang và số bậc thang bị hỏng (\(0 \leq k < n \leq 10^5\)).
- Dòng thứ hai chứa \(k\) số nguyên cho biết chỉ số của các bậc thang bị hỏng theo thứ tự tăng dần.
Output
- In ra phần dư của số cách Lucky leo hết cầu thang khi \(Modulo\) cho \(14062008\).
Example
Test 1
Input
4 2
2 3
Output
0
Test 2
Input
90000 1
49000
Output
4108266
Nguồn: vn.spoj
Bình luận
Hint
Gọi F[i] là số cách leo đến bậc thang thứ i. Nếu bậc thứ i thủng thì F[i] = 0, trái lại F[i] chỉ có thể leo từ bậc i-1 hoặc i-2, nên F[i] = F[i-1] + F[i-2] (không quan tâm i-1 với i-2 có thủng hay không vì nếu có thủng thì nó cũng bằng 0, không ảnh hưởng đến F[i])