#abc129c. [abc129_c]Typical Stairs

[abc129_c]Typical Stairs

题目描述

有一个 NN 级的楼梯。高桥现在站在楼梯的底部,也就是第 00 级。他每次可以爬一级或者两级。

然而,第 a1a_1a2a_2a3a_3\ldotsaMa_M 级的踏板是坏的,所以踩上这些台阶是危险的。

要求计算到达顶层,也就是第 NN 级,不踩坏台阶的方法总数,并对 1 000 000 0071\ 000\ 000\ 007 取模。

约束条件

  • 1N1051 \leq N \leq 10^5
  • 0MN10 \leq M \leq N-1
  • 1a1<a2<<aMN11 \leq a_1 < a_2 < \ldots < a_M \leq N-1

输入

从标准输入读入数据,输入格式如下:

N MN\ M

a1a_1

a2a_2

\ldots

\ldots

aMa_M

输出

打印在满足条件下爬楼梯的方法总数,结果对 1 000 000 0071\ 000\ 000\ 007 取模。


示例输入1

6 1
3

示例输出1

4

有以下四种方法可以爬上楼梯:

  • 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

示例输入2

10 2
4
5

示例输出2

0

可能没有办法在不踩坏台阶的情况下爬上楼梯。


示例输入3

100 5
1
23
45
67
89

示例输出3

608200469

请务必对 1 000 000 0071\ 000\ 000\ 007 取模后输出结果。