11216. Сходи


Відправити розв'язок

Бали: 100
Time limit: 1.0s
Memory limit: 250M

Author:
Problem type
Allowed languages
C++, Java, Pascal, Python

Є сходи з \(N\) східцями. Степан стоїть біля підніжжя сходів, тобто на 0-й сходинці.

Він може підніматися на одну чи дві сходинки одночасно.

Проте \(a_1\), \(a_2\), \(a_3\), ..., \(a_M\) сходинки зламані, тому ступати на ці сходинки небезпечно. Скільки є способів, щоб піднятися на верхню сходинку, тобто на \(N\)-ту сходинку, не ступаючи на розбиті сходинки?

Знайдіть цю кількість за модулем 1 000 000 007.

Формат вхідних даних

Вхідний потік містить у першому рядку цілі числа \(N,M\) (\(1 \le N \le 10^5\), \(0 \le M \le N-1\)).

Наступні \(M\) рядків містять цілі числа \(a_i\) (\(1 \le a_1 < a_2 < ... < a_M \le N-1\)). Числа розділяються пропуском.

Формат вихідних даних

У вихідний потік вивести кількість способів піднятися по сходах за модулем 1 000 000 007.

Примітка

До прикладу 1:

Є чотири способи піднятися по сходах, а саме:

  • 0→1→2→4→5→6

  • 0→1→2→4→6

  • 0→2→4→5→6

  • 0→2→4→6

Приклад вхідних даних

6 1
3

Приклад вихідних даних

4

Приклад вхідних даних

10 2
4
5

Приклад вихідних даних

0

Приклад вхідних даних

100 5
1
23
45
67
89

Приклад вихідних даних

608200469

Коментарі

Ще немає коментарів.