N,M = map(int,input().split())
A = [int(input()) for _ in range(M)]

isbroken = [1 for _ in range(N+1)]
for i in range(M):
  isbroken[A[i]] = 0


dp = [0 for _ in range(N+1)]
dp[0] = 1
mod = 10**9 + 7

dp[1] = dp[0] * isbroken[0]
  
for j in range(1,N):
  dp[j+1] = (dp[j] * isbroken[j] + dp[j-1] * isbroken[j-1]) % mod
    
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 = [int(input()) for _ in range(M)] A [int(input()) for _ in range(M)] 1 for _ in range(N+1) for _ in range(N+1) _ range(N+1) range N+1 N 1 for _ in range(N+1) 1 isbroken = [1 for _ in range(N+1)] isbroken [1 for _ in range(N+1)] for i in range(M):
  isbroken[A[i]] = 0 i range(M) range M isbroken[A[i]] = 0 isbroken[A[i]] isbroken A[i] A i 0 0 for _ in range(N+1) for _ in range(N+1) _ range(N+1) range N+1 N 1 for _ in range(N+1) 0 dp = [0 for _ in range(N+1)] dp [0 for _ in range(N+1)] dp[0] = 1 dp[0] dp 0 1 mod = 10**9 + 7 mod 10**9 + 7 10**9 10 9 7 dp[1] = dp[0] * isbroken[0] dp[1] dp 1 dp[0] * isbroken[0] dp[0] dp 0 isbroken[0] isbroken 0 for j in range(1,N):
  dp[j+1] = (dp[j] * isbroken[j] + dp[j-1] * isbroken[j-1]) % mod
     j range(1,N) range 1 N dp[j+1] = (dp[j] * isbroken[j] + dp[j-1] * isbroken[j-1]) % mod dp[j+1] dp j+1 j 1 (dp[j] * isbroken[j] + dp[j-1] * isbroken[j-1]) % mod dp[j] * isbroken[j] + dp[j-1] * isbroken[j-1] dp[j] * isbroken[j] dp[j] dp j isbroken[j] isbroken j dp[j-1] * isbroken[j-1] dp[j-1] dp j-1 j 1 isbroken[j-1] isbroken j-1 j 1 mod print(dp[N]) print dp[N] dp N A = [int(input()) for _ in range(M)] [int(input()) for _ in range(M)] A isbroken = [1 for _ in range(N+1)] [1 for _ in range(N+1)] isbroken dp = [0 for _ in range(N+1)] [0 for _ in range(N+1)] dp N,M = map(int,input().split()) map(int,input().split()) N mod = 10**9 + 7 10**9 + 7 mod M = map(int,input().split()) map(int,input().split()) M
N,M = map(int,input().split())
A = [int(input()) for _ in range(M)]

isbroken = [1 for _ in range(N+1)]
for i in range(M):
  isbroken[A[i]] = 0


dp = [0 for _ in range(N+1)]
dp[0] = 1
mod = 10**9 + 7

dp[1] = dp[0] * isbroken[0]
  
for j in range(1,N):
  dp[j+1] = (dp[j] * isbroken[j] + dp[j-1] * isbroken[j-1]) % mod
    
print(dp[N])