n, m = map(int, input().split())
a = set()
for _ in range(m):
  a_ = int(input())
  a.add(a_)

dp = [0] * (n+1)
if 1 not in a:
  dp[1] = 1
if 2 not in a and n != 1:
  dp[2] = dp[1] + 1
for i in range(3, n+1):
  if i not in a:
    dp[i] = dp[i-1] + dp[i-2]

print(dp[n]%(10**9+7)) n, m = map(int, input().split()) n map(int, input().split()) map int input().split() ().split () input split m a = set() a set() set for _ in range(m):
  a_ = int(input())
  a.add(a_) _ range(m) range m a_ = int(input()) a_ int(input()) int input() input a.add(a_) a.add a add a_ dp = [0] * (n+1) dp [0] * (n+1) [0] 0 n+1 n 1 if 1 not in a:
  dp[1] = 1 1 not in a 1 a dp[1] = 1 dp[1] dp 1 1 if 2 not in a and n != 1:
  dp[2] = dp[1] + 1 2 not in a and n != 1 2 not in a 2 a n != 1 n 1 dp[2] = dp[1] + 1 dp[2] dp 2 dp[1] + 1 dp[1] dp 1 1 for i in range(3, n+1):
  if i not in a:
    dp[i] = dp[i-1] + dp[i-2] i range(3, n+1) range 3 n+1 n 1 if i not in a:
    dp[i] = dp[i-1] + dp[i-2] i not in a i a 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[n]%(10**9+7)) print dp[n]%(10**9+7) dp[n] dp n 10**9+7 10**9 10 9 7 a_ = int(input()) int(input()) a_ dp = [0] * (n+1) [0] * (n+1) dp m = map(int, input().split()) map(int, input().split()) m n, m = map(int, input().split()) map(int, input().split()) n a = set() set() a
n, m = map(int, input().split())
a = set()
for _ in range(m):
  a_ = int(input())
  a.add(a_)

dp = [0] * (n+1)
if 1 not in a:
  dp[1] = 1
if 2 not in a and n != 1:
  dp[2] = dp[1] + 1
for i in range(3, n+1):
  if i not in a:
    dp[i] = dp[i-1] + dp[i-2]

print(dp[n]%(10**9+7))