n, m = map(int, input().split())

stairs = ["o"] * (n + 1)

for _ in range(m):
  stairs[int(input())] = "x"

c = [0] * (n + 1)
c[0] = 1
if stairs[1] == "x":
  c[1] = 0
else:
  c[1] = 1

for i in range(2, n + 1):
  if stairs[i] == "x":
    c[i] = 0
  else:
    c[i] = c[i - 1] + c[i - 2]

print(c[n] % 1000000007) n, m = map(int, input().split()) n map(int, input().split()) map int input().split() ().split () input split m stairs = ["o"] * (n + 1) stairs ["o"] * (n + 1) ["o"] "o" n + 1 n 1 for _ in range(m):
  stairs[int(input())] = "x" _ range(m) range m stairs[int(input())] = "x" stairs[int(input())] stairs int(input()) int input() input "x" c = [0] * (n + 1) c [0] * (n + 1) [0] 0 n + 1 n 1 c[0] = 1 c[0] c 0 1 if stairs[1] == "x":
  c[1] = 0
else:
  c[1] = 1 stairs[1] == "x" stairs[1] stairs 1 "x" c[1] = 0 c[1] c 1 0 c[1] = 1 c[1] c 1 1 for i in range(2, n + 1):
  if stairs[i] == "x":
    c[i] = 0
  else:
    c[i] = c[i - 1] + c[i - 2] i range(2, n + 1) range 2 n + 1 n 1 if stairs[i] == "x":
    c[i] = 0
  else:
    c[i] = c[i - 1] + c[i - 2] stairs[i] == "x" stairs[i] stairs i "x" c[i] = 0 c[i] c i 0 c[i] = c[i - 1] + c[i - 2] c[i] c i c[i - 1] + c[i - 2] c[i - 1] c i - 1 i 1 c[i - 2] c i - 2 i 2 print(c[n] % 1000000007) print c[n] % 1000000007 c[n] c n 1000000007 stairs = ["o"] * (n + 1) ["o"] * (n + 1) stairs m = map(int, input().split()) map(int, input().split()) m n, m = map(int, input().split()) map(int, input().split()) n c = [0] * (n + 1) [0] * (n + 1) c
n, m = map(int, input().split())

stairs = ["o"] * (n + 1)

for _ in range(m):
  stairs[int(input())] = "x"

c = [0] * (n + 1)
c[0] = 1
if stairs[1] == "x":
  c[1] = 0
else:
  c[1] = 1

for i in range(2, n + 1):
  if stairs[i] == "x":
    c[i] = 0
  else:
    c[i] = c[i - 1] + c[i - 2]

print(c[n] % 1000000007)