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

MOD = 10**9+7
dp = [0] * (n+1)
dp[0] = 1
if is_safe[1]:
    dp[1] = 1

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

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

MOD = 10**9+7
dp = [0] * (n+1)
dp[0] = 1
if is_safe[1]:
    dp[1] = 1

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

print(dp[n])
