N, M = map(int, input().split())

A = []

for i in range (0, M):
	A.append(int(input()))


if N == 1:
	print(1)
	exit()
elif N ==2:
	if len(A) ==1:
		print(1)
	else:
		print(2)
	exit()

DP = [0]*N

if A.count(1)==0:
	DP[0] = 1

if A.count(2)==0:
	if A.count(1)==0:
		DP[1] = 2
	else:
		DP[1] = 1

for i in range (0, M):
	DP[A[i]-1] = -1

for i in range (0, 2):
	if DP[i] == -1:
		DP[i] = 0

for i in range (2, N):
	if DP[i] ==-1:
		DP[i] = 0
	else:
		DP[i] = DP[i-1] + DP[i-2]

print(DP[-1]%(1000000007)) N, M = map(int, input().split()) N map(int, input().split()) map int input().split() ().split () input split M A = [] A [] for i in range (0, M):
	A.append(int(input())) i range (0, M) range 0 M A.append(int(input())) A.append A append int(input()) int input() input if N == 1:
	print(1)
	exit()
elif N ==2:
	if len(A) ==1:
		print(1)
	else:
		print(2)
	exit() N == 1 N 1 print(1) print 1 exit() exit elif N ==2:
	if len(A) ==1:
		print(1)
	else:
		print(2)
	exit() N ==2 N 2 if len(A) ==1:
		print(1)
	else:
		print(2)
	 len(A) ==1 len(A) len A 1 print(1) print 1 print(2) print 2 exit() exit DP = [0]*N DP [0]*N [0] 0 N if A.count(1)==0:
	DP[0] = 1 A.count(1)==0 A.count(1) A.count A count 1 0 DP[0] = 1 DP[0] DP 0 1 if A.count(2)==0:
	if A.count(1)==0:
		DP[1] = 2
	else:
		DP[1] = 1 A.count(2)==0 A.count(2) A.count A count 2 0 if A.count(1)==0:
		DP[1] = 2
	else:
		DP[1] = 1 A.count(1)==0 A.count(1) A.count A count 1 0 DP[1] = 2 DP[1] DP 1 2 DP[1] = 1 DP[1] DP 1 1 for i in range (0, M):
	DP[A[i]-1] = -1 i range (0, M) range 0 M DP[A[i]-1] = -1 DP[A[i]-1] DP A[i]-1 A[i] A i 1 -1 for i in range (0, 2):
	if DP[i] == -1:
		DP[i] = 0 i range (0, 2) range 0 2 if DP[i] == -1:
		DP[i] = 0 DP[i] == -1 DP[i] DP i -1 DP[i] = 0 DP[i] DP i 0 for i in range (2, N):
	if DP[i] ==-1:
		DP[i] = 0
	else:
		DP[i] = DP[i-1] + DP[i-2] i range (2, N) range 2 N if DP[i] ==-1:
		DP[i] = 0
	else:
		DP[i] = DP[i-1] + DP[i-2] DP[i] ==-1 DP[i] DP i -1 DP[i] = 0 DP[i] DP i 0 DP[i] = DP[i-1] + DP[i-2] DP[i] DP i DP[i-1] + DP[i-2] DP[i-1] DP i-1 i 1 DP[i-2] DP i-2 i 2 print(DP[-1]%(1000000007)) print DP[-1]%(1000000007) DP[-1] DP -1 1000000007 N, M = map(int, input().split()) map(int, input().split()) N A = [] [] A DP = [0]*N [0]*N DP M = map(int, input().split()) map(int, input().split()) M
N, M = map(int, input().split())

A = []

for i in range (0, M):
	A.append(int(input()))


if N == 1:
	print(1)
	exit()
elif N ==2:
	if len(A) ==1:
		print(1)
	else:
		print(2)
	exit()

DP = [0]*N

if A.count(1)==0:
	DP[0] = 1

if A.count(2)==0:
	if A.count(1)==0:
		DP[1] = 2
	else:
		DP[1] = 1

for i in range (0, M):
	DP[A[i]-1] = -1

for i in range (0, 2):
	if DP[i] == -1:
		DP[i] = 0

for i in range (2, N):
	if DP[i] ==-1:
		DP[i] = 0
	else:
		DP[i] = DP[i-1] + DP[i-2]

print(DP[-1]%(1000000007))