def fib(n):
    a1 = 2
    a2 = 1 
    if n==2:
        return 2
    elif n==1:
        return 1
    else:
        count = 1
        for i in range(n-2):
            count = a1 + a2
            a2 = a1
            a1 = count
        return count
        
N,M = list(map(int,input().split()))
ans = 1
z = False

if M != 0:
    a = [int(input()) for _ in range(M)]
else:
   ans *= fib(N)
   print(ans) 







for i in range(M):
    if i != 0:
        if a[i]-a[i-1] != 1:
            ans *= fib(a[i]-a[i-1]-2)
        else:
            z = True
            break
    else:
        ans *= fib(a[i]-1)

ans *= fib(N-a[-1]-1)

if z:
    print(0)
else:
    print(str(ans%1000000007))