atcoder#ABC129C. [ABC129C] Typical Stairs

[ABC129C] Typical Stairs

Score : 300300 points

Problem Statement

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 modulo 1 000 000 0071\ 000\ 000\ 007.

Constraints

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

Input

Input is given from Standard Input in the following format:

NN MM

a1a_1

a2a_2

..

..

..

aMa_M

Output

Print the number of ways to climb up the stairs under the condition, modulo 1 000 000 0071\ 000\ 000\ 007.

6 1
3
4

There are four ways to climb up the stairs, as follows:

  • 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
10 2
4
5
0

There may be no way to climb up the stairs without setting foot on the broken steps.

100 5
1
23
45
67
89
608200469

Be sure to print the count modulo 1 000 000 0071\ 000\ 000\ 007.