import functools
import operator

n,m= map(int,input().split())
li=[int(input()) for i in range(m)]
l=len(li)
a=0
b=0
c=[]
for i in range(l):
  b=li[i]-1
  c.append(b-a)
  a=li[i]+1
c.append(n-(li[-1]+1))
c2=[i for i in c if i<0]
if sum(c2)<0:
  print(0)
else:
  def fib(n):
    x,y=1,2
    if n==1 or n==0:
      return x
    elif n==2:
      return y
    else:
      for i in range(n-2):
        x, y = y,x+y
      return y
  ans=list(map(fib,c))

  result = functools.reduce(operator.mul, ans)
  print(result%1000000007)