#ABC129C. Typical Stairs

Typical Stairs

题目描述

There is a staircase with NN steps. Takahashi is now standing at the foot of the stairs, that is, on the 00-th step. He can climb up one or two steps at a time.

However, the treads of the a1a_1-th, a2a_2-th, a3a_3-th, \ldots, aMa_M-th steps are broken, so it is dangerous to set foot on those steps.

How many are there to climb up to the top step, that is, the NN-th step, without setting foot on the broken steps? Find the count mod 1 000 000 0071\ 000\ 000\ 007.

有一个有 NN 级台阶的楼梯。高桥现在站在楼梯的脚下,也就是第 00 个台阶上。他可以一次爬上一个或两个台阶。

但是,第 a1a_1a2a_2a3a_3\ldotsaMa_M 个台阶的踏板是坏的,所以踏上这些台阶是很危险的。

在不踏上坏掉的台阶的情况下,有多少人可以爬到最上面的台阶,也就是第 NN 个台阶?求模数 1 000 000 0071\ 000\ 000\ 007

输入格式

输入内容按以下格式标准输入:

NN MM
a1a_1
a2a_2
. .
. .
. .
aMa_M

输出格式

打印在条件下爬楼梯的方式数,结果对 1 000 000 0071\ 000\ 000\ 007 取 MOD。

样例 #1

样例输入 #1

6 1
3

样例输出 #1

4

样例 #2

样例输入 #2

10 2
4
5

样例输出 #2

0

样例 #3

样例输入 #3

100 5
1
23
45
67
89

样例输出 #3

608200469

说明

数据规模与约定

  • 1N1051 \leq N \leq 10^5
  • 0MN10 \leq M \leq N-1
  • 1a1<a2<1 \leq a_1 \lt a_2 \lt ...... <aMN1 \lt a_M \leq N-1

样例 11 解释

爬楼梯有以下四种方法:

  • 0124560 \to 1 \to 2 \to 4 \to 5 \to 6
  • 012460 \to 1 \to 2 \to 4 \to 6
  • 024560 \to 2 \to 4 \to 5 \to 6
  • 02460 \to 2 \to 4 \to 6

样例 22 解释

如果不踏上破损的台阶,可能就无法爬上楼梯。

样例 33 解释

请务必打印计数 mod 1 000 000 0071\ 000\ 000\ 007