n,m=map(int,input().split())
a=[int(input()) for i in range(m)]
a=set(a)
mod=10**9+7
dp=[0]*(n+7)
dp[0]=1
for i in range(n+1):
    if i+2 not in a: #2段先が壊れていない
        dp[i+2]+=dp[i]
    if i+1 not in a: #1段先が壊れていない
        dp[i+1]+=dp[i]
    dp[i+2]%=mod
    dp[i+1]%=mod
print(dp[n]%mod) n,m=map(int,input().split()) n map(int,input().split()) map int input().split() ().split () input split m int(input()) for i in range(m) for i in range(m) i range(m) range m for i in range(m) int(input()) int input() input a=[int(input()) for i in range(m)] a [int(input()) for i in range(m)] a=set(a) a set(a) set a mod=10**9+7 mod 10**9+7 10**9 10 9 7 dp=[0]*(n+7) dp [0]*(n+7) [0] 0 n+7 n 7 dp[0]=1 dp[0] dp 0 1 for i in range(n+1):
    if i+2 not in a: #2段先が壊れていない
        dp[i+2]+=dp[i]
    if i+1 not in a: #1段先が壊れていない
        dp[i+1]+=dp[i]
    dp[i+2]%=mod
    dp[i+1]%=mod i range(n+1) range n+1 n 1 if i+2 not in a: #2段先が壊れていない
        dp[i+2]+=dp[i]
     i+2 not in a i+2 i 2 a dp[i+2]+=dp[i] dp[i+2] dp i+2 i 2 dp[i] dp i if i+1 not in a: #1段先が壊れていない
        dp[i+1]+=dp[i]
     i+1 not in a i+1 i 1 a dp[i+1]+=dp[i] dp[i+1] dp i+1 i 1 dp[i] dp i dp[i+2]%=mod dp[i+2] dp i+2 i 2 mod dp[i+1]%=mod dp[i+1] dp i+1 i 1 mod print(dp[n]%mod) print dp[n]%mod dp[n] dp n mod m=map(int,input().split()) map(int,input().split()) m dp=[0]*(n+7) [0]*(n+7) dp n,m=map(int,input().split()) map(int,input().split()) n a=[int(input()) for i in range(m)] [int(input()) for i in range(m)] a a=set(a) set(a) a mod=10**9+7 10**9+7 mod
n,m=map(int,input().split())
a=[int(input()) for i in range(m)]
a=set(a)
mod=10**9+7
dp=[0]*(n+7)
dp[0]=1
for i in range(n+1):
    if i+2 not in a: #2段先が壊れていない
        dp[i+2]+=dp[i]
    if i+1 not in a: #1段先が壊れていない
        dp[i+1]+=dp[i]
    dp[i+2]%=mod
    dp[i+1]%=mod
print(dp[n]%mod)
