#ATabc129c. [ABC129C] Typical Stairs

[ABC129C] Typical Stairs

AT_abc129_c [ABC129C] Typical Stairs

题目描述

NN 段的楼梯。高桥君现在在楼梯的起点(第 00 段)。高桥君每一步可以上 11 段或 22 段。

但是,第 a1,a2,a3,,aMa_1,a_2,a_3,\ldots,a_M 段的楼梯已经损坏,踩在这些楼梯上是危险的。

在不踩到损坏楼梯的前提下,从起点到达最顶端(第 NN 段)的方法有多少种?请输出方案数对 1,000,000,0071,000,000,007 取模的结果。

输入格式

输入通过标准输入给出,格式如下:

NN MM a1a_1 a2a_2 \ldots aMa_M

输出格式

请输出满足条件的移动方法总数对 1,000,000,0071,000,000,007 取模的结果。

样例 1

输入

6 1
3

输出

4

样例 2

输入

10 2
4
5

输出

0

样例 3

输入

100 5
1
23
45
67
89

输出

608200469

说明/提示

限制条件

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

样例解释 1

共有以下 44 种移动方法:

  • 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

也有可能没有任何一种不踩到损坏楼梯的移动方法。

样例解释 3

请注意,输出的答案需要对 1,000,000,0071,000,000,007 取模。

由 ChatGPT 4.1 翻译