Bậc thang

Xem PDF

Đ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\)\(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


  • 2
    hungthcsyl    4:16 p.m. 31 Tháng 7, 2024 đã chỉnh sửa
    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])