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

MOD = pow(10, 9) + 7

dp = [0] * (n+1)

dp[0] = 1

broken = [False] * (n+1)
for i in range(m):
    broken[int(input())] = True

c = 1

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

print(dp[-1] % MOD)  n, m = list(map(int, input().split())) n list(map(int, input().split())) list map(int, input().split()) map int input().split() ().split () input split m MOD = pow(10, 9) + 7 MOD pow(10, 9) + 7 pow(10, 9) pow 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 broken = [False] * (n+1) broken [False] * (n+1) [False] False n+1 n 1 for i in range(m):
    broken[int(input())] = True i range(m) range m broken[int(input())] = True broken[int(input())] broken int(input()) int input() input True c = 1 c 1 for i in range(1, n+1):
    if broken[i]:
        dp[i] = 0
    else:
        if i == 1:
            dp[i] = dp[i-1] % MOD
        else:
            dp[i] = (dp[i-1] + dp[i-2]) % MOD i range(1, n+1) range 1 n+1 n 1 if broken[i]:
        dp[i] = 0
    else:
        if i == 1:
            dp[i] = dp[i-1] % MOD
        else:
            dp[i] = (dp[i-1] + dp[i-2]) % MOD broken[i] broken i dp[i] = 0 dp[i] dp i 0 if i == 1:
            dp[i] = dp[i-1] % MOD
        else:
            dp[i] = (dp[i-1] + dp[i-2]) % MOD i == 1 i 1 dp[i] = dp[i-1] % MOD dp[i] dp i dp[i-1] % MOD dp[i-1] dp i-1 i 1 MOD 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] % MOD) print dp[-1] % MOD dp[-1] dp -1 MOD dp = [0] * (n+1) [0] * (n+1) dp n, m = list(map(int, input().split())) list(map(int, input().split())) n broken = [False] * (n+1) [False] * (n+1) broken c = 1 1 c MOD = pow(10, 9) + 7 pow(10, 9) + 7 MOD m = list(map(int, input().split())) list(map(int, input().split())) m
n, m = list(map(int, input().split()))

MOD = pow(10, 9) + 7

dp = [0] * (n+1)

dp[0] = 1

broken = [False] * (n+1)
for i in range(m):
    broken[int(input())] = True

c = 1

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

print(dp[-1] % MOD) 
