N, M = map(int, input().split())
mod = 10 ** 9 + 7
A = [1] * (N+1)
for i in range(M):
  A[int(input())] = 0
if N == 1:
  print(1)
else:
  p = 1
  q = 1
  for i in range(2, N+1):
    r = A[i-2] * p + A[i-1] * q
    p = q
    q = r % mod
  print(q) N, M = map(int, input().split()) N map(int, input().split()) map int input().split() ().split () input split M mod = 10 ** 9 + 7 mod 10 ** 9 + 7 10 ** 9 10 9 7 A = [1] * (N+1) A [1] * (N+1) [1] 1 N+1 N 1 for i in range(M):
  A[int(input())] = 0 i range(M) range M A[int(input())] = 0 A[int(input())] A int(input()) int input() input 0 if N == 1:
  print(1)
else:
  p = 1
  q = 1
  for i in range(2, N+1):
    r = A[i-2] * p + A[i-1] * q
    p = q
    q = r % mod
  print(q) N == 1 N 1 print(1) print 1 p = 1 p 1 q = 1 q 1 for i in range(2, N+1):
    r = A[i-2] * p + A[i-1] * q
    p = q
    q = r % mod
   i range(2, N+1) range 2 N+1 N 1 r = A[i-2] * p + A[i-1] * q r A[i-2] * p + A[i-1] * q A[i-2] * p A[i-2] A i-2 i 2 p A[i-1] * q A[i-1] A i-1 i 1 q p = q p q q = r % mod q r % mod r mod print(q) print q M = map(int, input().split()) map(int, input().split()) M mod = 10 ** 9 + 7 10 ** 9 + 7 mod A = [1] * (N+1) [1] * (N+1) A r = A[i-2] * p + A[i-1] * q A[i-2] * p + A[i-1] * q r q = r % mod r % mod q p = 1 1 p q = 1 1 q N, M = map(int, input().split()) map(int, input().split()) N p = q q p
N, M = map(int, input().split())
mod = 10 ** 9 + 7
A = [1] * (N+1)
for i in range(M):
  A[int(input())] = 0
if N == 1:
  print(1)
else:
  p = 1
  q = 1
  for i in range(2, N+1):
    r = A[i-2] * p + A[i-1] * q
    p = q
    q = r % mod
  print(q)