N, M = map(int, input().split())
a = set([int(input()) for _ in range(M)])
INF = 1000000007

dp = [0] * (N + 1)
dp[0] = 1
if 1 not in a:
	dp[1] = 1
else:
	dp[1] = 0
for i in range(2, N + 1):
	if i in a:
		continue
	dp[i] = dp[i - 1] + dp[i - 2]
	dp[i] %= INF

print(dp[N]) 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)] INF = 1000000007 INF 1000000007 dp = [0] * (N + 1) dp [0] * (N + 1) [0] 0 N + 1 N 1 dp[0] = 1 dp[0] dp 0 1 if 1 not in a:
	dp[1] = 1
else:
	dp[1] = 0 1 not in a 1 a dp[1] = 1 dp[1] dp 1 1 dp[1] = 0 dp[1] dp 1 0 for i in range(2, N + 1):
	if i in a:
		continue
	dp[i] = dp[i - 1] + dp[i - 2]
	dp[i] %= INF i range(2, N + 1) range 2 N + 1 N 1 if i in a:
		continue
	 i in a i a continue 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 dp[i] %= INF dp[i] dp i INF print(dp[N]) print dp[N] dp N INF = 1000000007 1000000007 INF 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 dp = [0] * (N + 1) [0] * (N + 1) dp
N, M = map(int, input().split())
a = set([int(input()) for _ in range(M)])
INF = 1000000007

dp = [0] * (N + 1)
dp[0] = 1
if 1 not in a:
	dp[1] = 1
else:
	dp[1] = 0
for i in range(2, N + 1):
	if i in a:
		continue
	dp[i] = dp[i - 1] + dp[i - 2]
	dp[i] %= INF

print(dp[N])