N,M = map(int,input().split())
A = set([int(input()) for _ in range(M)])
step = [0] * (N+1)
step[0] = 1
if 1 not in A:
    step[1] = 1
else:
    step[1] = 0
for i in range(2,N+1):
    if i in A:
        continue
    step[i] = (step[i-1] + step[i-2]) % 1000000007
print(step[-1]) N,M = map(int,input().split()) N map(int,input().split()) map int input().split() ().split () input split M int(input()) for _ in range(M) for _ in range(M) _ range(M) range M for _ in range(M) int(input()) int input() input A = set([int(input()) for _ in range(M)]) A set([int(input()) for _ in range(M)]) set [int(input()) for _ in range(M)] step = [0] * (N+1) step [0] * (N+1) [0] 0 N+1 N 1 step[0] = 1 step[0] step 0 1 if 1 not in A:
    step[1] = 1
else:
    step[1] = 0 1 not in A 1 A step[1] = 1 step[1] step 1 1 step[1] = 0 step[1] step 1 0 for i in range(2,N+1):
    if i in A:
        continue
    step[i] = (step[i-1] + step[i-2]) % 1000000007 i range(2,N+1) range 2 N+1 N 1 if i in A:
        continue
     i in A i A continue step[i] = (step[i-1] + step[i-2]) % 1000000007 step[i] step i (step[i-1] + step[i-2]) % 1000000007 step[i-1] + step[i-2] step[i-1] step i-1 i 1 step[i-2] step i-2 i 2 1000000007 print(step[-1]) print step[-1] step -1 N,M = map(int,input().split()) map(int,input().split()) N M = map(int,input().split()) map(int,input().split()) M A = set([int(input()) for _ in range(M)]) set([int(input()) for _ in range(M)]) A step = [0] * (N+1) [0] * (N+1) step
N,M = map(int,input().split())
A = set([int(input()) for _ in range(M)])
step = [0] * (N+1)
step[0] = 1
if 1 not in A:
    step[1] = 1
else:
    step[1] = 0
for i in range(2,N+1):
    if i in A:
        continue
    step[i] = (step[i-1] + step[i-2]) % 1000000007
print(step[-1])