#abc129c. [abc129_c]Typical Stairs

[abc129_c]Typical Stairs

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\\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 10000000071\\ 000\\ 000\\ 007.

Constraints

  • 1leqNleq1051 \\leq N \\leq 10^5
  • 0leqMleqN10 \\leq M \\leq N-1
  • 1leqa1<a2<1 \\leq a_1 < a_2 < ...... <aMleqN1< 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 10000000071\\ 000\\ 000\\ 007.


Sample Input 1

6 1
3

Sample Output 1

4

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

  • 0to1to2to4to5to60 \\to 1 \\to 2 \\to 4 \\to 5 \\to 6
  • 0to1to2to4to60 \\to 1 \\to 2 \\to 4 \\to 6
  • 0to2to4to5to60 \\to 2 \\to 4 \\to 5 \\to 6
  • 0to2to4to60 \\to 2 \\to 4 \\to 6

Sample Input 2

10 2
4
5

Sample Output 2

0

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


Sample Input 3

100 5
1
23
45
67
89

Sample Output 3

608200469

Be sure to print the count modulo 10000000071\\ 000\\ 000\\ 007.