#ABC129C 動的計画法

n, m = map(int, input().split())
a = int(input()) for _ in range(m)

dp = [0] * 10000
dp[0] = 1
if 1 not in a:
    dp[1] = 1

for i in range(2, n + 1):
    if  (i - 1) not in a:
        print("/", dp[i])
        dp[i] = dp[i] + dp[i - 1]
        print("●  dp[{0}]={2}  dp[{1}]={3}".format(i-1, i, dp[i - 1],  dp[i]))
    if (i - 2) not in a:
        print("//", dp[i])
        dp[i] = dp[i - 2] + dp[i] 
        print("■  dp[{0}]={2}  dp[{1}]={3}".format(i-2, i, dp[i - 1],  dp[i]))
    
    print("dp[{0}]={1}".format(i, dp[i]))
    
    dp[i] %= 1000000007
    
print(dp[n])