n,m = map(int, input().split())
al = [True]*(n+1)
for _ in range(m):
    a = int(input())
    al[a] = False

MOD = 10**9+7
dp = [0]*(n+1)
dp[0] = 1
for i in range(n):
    if i+1 <= n and al[i+1]:
        dp[i+1] += dp[i]
        dp[i+1]%=MOD
    if i+2 <= n and al[i+2]:
        dp[i+2] += dp[i]
        dp[i+2]%=MOD

print(dp[n]) n,m = map(int, input().split()) n map(int, input().split()) map int input().split() ().split () input split m al = [True]*(n+1) al [True]*(n+1) [True] True n+1 n 1 for _ in range(m):
    a = int(input())
    al[a] = False _ range(m) range m a = int(input()) a int(input()) int input() input al[a] = False al[a] al a False MOD = 10**9+7 MOD 10**9+7 10**9 10 9 7 dp = [0]*(n+1) dp [0]*(n+1) [0] 0 n+1 n 1 dp[0] = 1 dp[0] dp 0 1 for i in range(n):
    if i+1 <= n and al[i+1]:
        dp[i+1] += dp[i]
        dp[i+1]%=MOD
    if i+2 <= n and al[i+2]:
        dp[i+2] += dp[i]
        dp[i+2]%=MOD i range(n) range n if i+1 <= n and al[i+1]:
        dp[i+1] += dp[i]
        dp[i+1]%=MOD
     i+1 <= n and al[i+1] i+1 <= n i+1 i 1 n al[i+1] al i+1 i 1 dp[i+1] += dp[i] dp[i+1] dp i+1 i 1 dp[i] dp i dp[i+1]%=MOD dp[i+1] dp i+1 i 1 MOD if i+2 <= n and al[i+2]:
        dp[i+2] += dp[i]
        dp[i+2]%=MOD i+2 <= n and al[i+2] i+2 <= n i+2 i 2 n al[i+2] al i+2 i 2 dp[i+2] += dp[i] dp[i+2] dp i+2 i 2 dp[i] dp i dp[i+2]%=MOD dp[i+2] dp i+2 i 2 MOD print(dp[n]) print dp[n] dp n m = map(int, input().split()) map(int, input().split()) m n,m = map(int, input().split()) map(int, input().split()) n a = int(input()) int(input()) a dp = [0]*(n+1) [0]*(n+1) dp al = [True]*(n+1) [True]*(n+1) al MOD = 10**9+7 10**9+7 MOD
n,m = map(int, input().split())
al = [True]*(n+1)
for _ in range(m):
    a = int(input())
    al[a] = False

MOD = 10**9+7
dp = [0]*(n+1)
dp[0] = 1
for i in range(n):
    if i+1 <= n and al[i+1]:
        dp[i+1] += dp[i]
        dp[i+1]%=MOD
    if i+2 <= n and al[i+2]:
        dp[i+2] += dp[i]
        dp[i+2]%=MOD

print(dp[n])
