n, m = map(int, input().split())
broken = [0]*(n+1)
#m個階段が壊れているからそれをbrokenに入れる
for i in range(m):
    a = int(input())
    broken[a] = 1
dp = [0]*(n+1)
dp[0] = 1
mod = 1000000007
for i in range(1, n+1):
    if broken[i]:
        continue
    #dp[-1]は0だから上手く回る
    dp[i] = (dp[i-1] + 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 broken = [0]*(n+1) broken [0]*(n+1) [0] 0 n+1 n 1 for i in range(m):
    a = int(input())
    broken[a] = 1 i range(m) range m a = int(input()) a int(input()) int input() input broken[a] = 1 broken[a] broken a 1 dp = [0]*(n+1) dp [0]*(n+1) [0] 0 n+1 n 1 dp[0] = 1 dp[0] dp 0 1 mod = 1000000007 mod 1000000007 for i in range(1, n+1):
    if broken[i]:
        continue
    #dp[-1]は0だから上手く回る
    dp[i] = (dp[i-1] + dp[i-2]) % mod i range(1, n+1) range 1 n+1 n 1 if broken[i]:
        continue
    #dp[-1]は0だから上手く回る
     broken[i] broken i continue 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[n]) print dp[n] dp n dp = [0]*(n+1) [0]*(n+1) dp mod = 1000000007 1000000007 mod a = int(input()) int(input()) a n, m = map(int, input().split()) map(int, input().split()) n broken = [0]*(n+1) [0]*(n+1) broken m = map(int, input().split()) map(int, input().split()) m
n, m = map(int, input().split())
broken = [0]*(n+1)
#m個階段が壊れているからそれをbrokenに入れる
for i in range(m):
    a = int(input())
    broken[a] = 1
dp = [0]*(n+1)
dp[0] = 1
mod = 1000000007
for i in range(1, n+1):
    if broken[i]:
        continue
    #dp[-1]は0だから上手く回る
    dp[i] = (dp[i-1] + dp[i-2]) % mod
print(dp[n])
