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