N,M=map(int,input().split())
A=[int(input()) for i in range(M)]
#print(N)
#print(M)
def root(i): #0からiにいく組み合わせ
    if i==0:
        return 1
    elif i==1:
        return 1
    elif i==2:
        return 2
    elif i<0:
        print(0)
        exit()
    else:
        return root(i-1)+root(i-2)
#print(root(5))
#print(A)
ans=0
for i in range(M):
    if i==0:
        ans=root(A[0]-1)
    else:
        ans*=root(A[i]-A[i-1]-2)
    #print(ans)
    #print(i)
ans*=root(N-A[M-1]-1)
print(ans%1000000007)
