N, M = map(int, input().split())

# 壊れた階段の位置
a=[]
for _ in range(M):
    a.append(int(input()))
    
dp=[0]*(N+1)
dp[0]=1

# dp[i+1] : 壊れた階段を踏まずに i 段目に到達する方法の総数
for i in range(1,N):
    if i in a:
        dp[i+1]=0
        continue
    elif (i-1) not in a:
        dp[i+1] = max(dp[i+1], dp[i]+dp[i-1])
    elif (i-1) in a and (i-2) not in a:
        dp[i+1] = max(dp[i+1], dp[i-1])


print(dp[N]%100000007)
print(dp)

