def _comb(N,M):
    if not N:return(0)
    count=1
    for i in range(0,M):
        count*=N-i
    for i in range(1,M+1):
        count/=i
    return(int(count))

N,M=list(map(int,input().split()))
A=[int(input()) for i in range(M)]
if N-1 in A:pass
else:A.append(N+1)
if 1 in A:pre=-1
else:pre=0
count=1
for a in A:
    count*=sum([_comb(a-1-pre-i,i) for i in range((a-1)-pre)])
    pre=a+1
print(count%1000000007)
