n , m = map(int, input().split())
a = []
p = 0
max_wid = 0
for i in range(m):
    b = int(input())
    a.append(b)
    if i > 0:
        max_wid = max(max_wid, b)
max_wid = max(max_wid, n - a[m-1])
fib = [1, 1]
for i in range(max_wid+3):
    l = len(fib)
    fib.append(fib[l-2] + fib[l-1])

ans = 1
if a[0] == 0:
    ans *= 0
else:
    ans *= fib[a[0]-1]

for i in range(m-1):
    if a[i+1] == a[i] + 1:
        ans *= 0
    else:
        ans *= fib[a[i+1]-a[i]-2]
        

ans *= fib[n-a[m-1]-1]
ans %= 1000000007
print(ans)
