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