N, M = map(int, input().split())
A = [True] * (N + 1)
for _ in range(M):
    a = int(input())
    A[a] = False

dp = [0] * (N + 1)

dp[0] = 1
for i in range(N):
    for j in range(i + 1, min(N, i + 2) + 1):
        if A[j] is True:
            dp[j] += dp[i]
            dp[j] %= 10 ** 9 + 7

print(dp[N]) 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())
    A[a] = False _ range(M) range M a = int(input()) a int(input()) int input() input A[a] = False A[a] A a 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):
    for j in range(i + 1, min(N, i + 2) + 1):
        if A[j] is True:
            dp[j] += dp[i]
            dp[j] %= 10 ** 9 + 7 i range(N) range N for j in range(i + 1, min(N, i + 2) + 1):
        if A[j] is True:
            dp[j] += dp[i]
            dp[j] %= 10 ** 9 + 7 j range(i + 1, min(N, i + 2) + 1) range i + 1 i 1 min(N, i + 2) + 1 min(N, i + 2) min N i + 2 i 2 1 if A[j] is True:
            dp[j] += dp[i]
            dp[j] %= 10 ** 9 + 7 A[j] is True A[j] A j True dp[j] += dp[i] dp[j] dp j dp[i] dp i dp[j] %= 10 ** 9 + 7 dp[j] dp j 10 ** 9 + 7 10 ** 9 10 9 7 print(dp[N]) print dp[N] dp N N, M = map(int, input().split()) map(int, input().split()) N A = [True] * (N + 1) [True] * (N + 1) A dp = [0] * (N + 1) [0] * (N + 1) dp M = map(int, input().split()) map(int, input().split()) M a = int(input()) int(input()) a
N, M = map(int, input().split())
A = [True] * (N + 1)
for _ in range(M):
    a = int(input())
    A[a] = False

dp = [0] * (N + 1)

dp[0] = 1
for i in range(N):
    for j in range(i + 1, min(N, i + 2) + 1):
        if A[j] is True:
            dp[j] += dp[i]
            dp[j] %= 10 ** 9 + 7

print(dp[N])
