n,m=map(int,input().split())

a=[int(input()) for _ in range(m)]

dp=[0]*(n+1)

broken=[0]*(n+1)

for aa in a:
    broken[aa]=1

dp[0]=1
if broken[1]==0:
    dp[1]=1

mod=10**9+7

for i in range(2,n+1):
    if broken[i]==0:
        dp[i]=(dp[i-1]+dp[i-2])%mod

print(dp[-1])
 n,m=map(int,input().split()) n map(int,input().split()) map int input().split() ().split () input split m int(input()) for _ in range(m) for _ in range(m) _ range(m) range m for _ in range(m) int(input()) int input() input a=[int(input()) for _ in range(m)] a [int(input()) for _ in range(m)] dp=[0]*(n+1) dp [0]*(n+1) [0] 0 n+1 n 1 broken=[0]*(n+1) broken [0]*(n+1) [0] 0 n+1 n 1 for aa in a:
    broken[aa]=1 aa a broken[aa]=1 broken[aa] broken aa 1 dp[0]=1 dp[0] dp 0 1 if broken[1]==0:
    dp[1]=1 broken[1]==0 broken[1] broken 1 0 dp[1]=1 dp[1] dp 1 1 mod=10**9+7 mod 10**9+7 10**9 10 9 7 for i in range(2,n+1):
    if broken[i]==0:
        dp[i]=(dp[i-1]+dp[i-2])%mod i range(2,n+1) range 2 n+1 n 1 if broken[i]==0:
        dp[i]=(dp[i-1]+dp[i-2])%mod broken[i]==0 broken[i] broken i 0 dp[i]=(dp[i-1]+dp[i-2])%mod dp[i] dp i (dp[i-1]+dp[i-2])%mod dp[i-1]+dp[i-2] dp[i-1] dp i-1 i 1 dp[i-2] dp i-2 i 2 mod print(dp[-1]) print dp[-1] dp -1 m=map(int,input().split()) map(int,input().split()) m n,m=map(int,input().split()) map(int,input().split()) n broken=[0]*(n+1) [0]*(n+1) broken a=[int(input()) for _ in range(m)] [int(input()) for _ in range(m)] a mod=10**9+7 10**9+7 mod dp=[0]*(n+1) [0]*(n+1) dp
n,m=map(int,input().split())

a=[int(input()) for _ in range(m)]

dp=[0]*(n+1)

broken=[0]*(n+1)

for aa in a:
    broken[aa]=1

dp[0]=1
if broken[1]==0:
    dp[1]=1

mod=10**9+7

for i in range(2,n+1):
    if broken[i]==0:
        dp[i]=(dp[i-1]+dp[i-2])%mod

print(dp[-1])

