n,m=map(int,input().split())
a=[]
for i in range(m):
  a.append(int(input()))
lst=[]
lst.append(a[0])
lst.append(0)
for j in range(m-1):
  lst.append(a[j+1]-a[j]-1)
  lst.append(0)
lst.append(n-a[m-1])
l=len(lst)
for k in range(l-1):
  if lst[k]==0 and lst[k+1]==0:
    print(0)
    break
  else:
    if lst[k]>1:
      lst[k]-=1
if lst[l-1]>1:
  lst[l-1]-=1
for p in range(l):
  if lst[p]==0:
    del lst[p]
totl=1
for q in range(len(lst)):
  totl*=lst[q]
  totl=totl%1000000007
print(totl)




 
  
  
   
    



