
a = list(map(int, input().split()))
#print(a)
b=[0]*a[1]
c=[0]*(a[1]+1)
b[0]=int(input())
c[0]=b[0]-0
for x in range(a[1]-1):
    b[x+1]=int(input())
    c[x+1]=b[x+1]-b[x]-1
c[-1]=a[0]-b[-1]
try:
	max = 0
	min = a[0]+100
	for x in c:
	    if x>max:
	        max=x
	    if x<min:
	        min=x
	        
	#print(c)
#pr	int(max," ",min)
	if min==0:
   		print(0)
	else:
    	num=[0]*(max)
  		for x in range(max):
        	if x==0:
            	num[0]=1
        	elif x==1:
            	num[1]=1
        	else:
            	num[x]=num[x-1]+num[x-2]
        #print("num[",x,"]=",num[x])
        
    	answer=1
    	for x in c:
        	answer *=num[x-1]
        	answer%=1000000007
    	print(answer)
except:
	print(0)