N, M = map(int, (input().split()))
n = [0] * (N+1)
for i in range(M):
    n[int(input())] = True
f = [1]
for i in range(1, N+1):
    if n[i]:
        f.append(0)
    elif i == 1:
        f.append(f[0])
    else:
        f.append((f[i-1]+f[i-2])%(10**9+7))
print(f[N]) N, M = map(int, (input().split())) N map(int, (input().split())) map int input().split() ().split () input split M n = [0] * (N+1) n [0] * (N+1) [0] 0 N+1 N 1 for i in range(M):
    n[int(input())] = True i range(M) range M n[int(input())] = True n[int(input())] n int(input()) int input() input True f = [1] f [1] 1 for i in range(1, N+1):
    if n[i]:
        f.append(0)
    elif i == 1:
        f.append(f[0])
    else:
        f.append((f[i-1]+f[i-2])%(10**9+7)) i range(1, N+1) range 1 N+1 N 1 if n[i]:
        f.append(0)
    elif i == 1:
        f.append(f[0])
    else:
        f.append((f[i-1]+f[i-2])%(10**9+7)) n[i] n i f.append(0) f.append f append 0 elif i == 1:
        f.append(f[0])
     i == 1 i 1 f.append(f[0]) f.append f append f[0] f 0 f.append((f[i-1]+f[i-2])%(10**9+7)) f.append f append (f[i-1]+f[i-2])%(10**9+7) f[i-1]+f[i-2] f[i-1] f i-1 i 1 f[i-2] f i-2 i 2 10**9+7 10**9 10 9 7 print(f[N]) print f[N] f N M = map(int, (input().split())) map(int, (input().split())) M N, M = map(int, (input().split())) map(int, (input().split())) N f = [1] [1] f n = [0] * (N+1) [0] * (N+1) n
N, M = map(int, (input().split()))
n = [0] * (N+1)
for i in range(M):
    n[int(input())] = True
f = [1]
for i in range(1, N+1):
    if n[i]:
        f.append(0)
    elif i == 1:
        f.append(f[0])
    else:
        f.append((f[i-1]+f[i-2])%(10**9+7))
print(f[N])
