from collections import deque

n,m = map(int,input().split())
step = list(range(2,n+1))
broken = []
for i in range(m):
    broken += [int(input())]

mod = 10**9+7
dp = [0]*(n+1)
dp[0] = 1

if m == 0:
    dp[1] = 1
    for i in step:
        dp[i] = dp[i-1] + dp[i-2]
else:
    if not broken[0] == 1:
        dp[1] = 1
    b = deque(broken)
    if len(broken) != 0:
        bad_one = b.popleft()
    for i in step:
        if i != bad_one:
            dp[i] = (dp[i-1]+dp[i-2]) % mod
        elif i == bad_one and len(b) != 0:
            bad_one = b.popleft()
print(dp[n] % mod)
