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

a = []
for i in range(m):
    a.append(int(input()))
a = set(a)

dp = [0] * (n + 1)
dp[0] = 1
for now in range(0, n + 1):
    for next_step in range(now + 1, min(n + 1, now + 3)):
        if not next_step in a:
            dp[next_step] += dp[now]
            dp[next_step] %= 1000000007

print(dp[n]) n, m = map(int, input().split()) n map(int, input().split()) map int input().split() ().split () input split m a = [] a [] for i in range(m):
    a.append(int(input())) i range(m) range m a.append(int(input())) a.append a append int(input()) int input() input a = set(a) a set(a) set a dp = [0] * (n + 1) dp [0] * (n + 1) [0] 0 n + 1 n 1 dp[0] = 1 dp[0] dp 0 1 for now in range(0, n + 1):
    for next_step in range(now + 1, min(n + 1, now + 3)):
        if not next_step in a:
            dp[next_step] += dp[now]
            dp[next_step] %= 1000000007 now range(0, n + 1) range 0 n + 1 n 1 for next_step in range(now + 1, min(n + 1, now + 3)):
        if not next_step in a:
            dp[next_step] += dp[now]
            dp[next_step] %= 1000000007 next_step range(now + 1, min(n + 1, now + 3)) range now + 1 now 1 min(n + 1, now + 3) min n + 1 n 1 now + 3 now 3 if not next_step in a:
            dp[next_step] += dp[now]
            dp[next_step] %= 1000000007 not next_step in a next_step in a next_step a dp[next_step] += dp[now] dp[next_step] dp next_step dp[now] dp now dp[next_step] %= 1000000007 dp[next_step] dp next_step 1000000007 print(dp[n]) print dp[n] dp n a = set(a) set(a) a a = [] [] a dp = [0] * (n + 1) [0] * (n + 1) dp n, m = map(int, input().split()) map(int, input().split()) n m = map(int, input().split()) map(int, input().split()) m
n, m = map(int, input().split())

a = []
for i in range(m):
    a.append(int(input()))
a = set(a)

dp = [0] * (n + 1)
dp[0] = 1
for now in range(0, n + 1):
    for next_step in range(now + 1, min(n + 1, now + 3)):
        if not next_step in a:
            dp[next_step] += dp[now]
            dp[next_step] %= 1000000007

print(dp[n])