n,m=map(int,input().split())
p = 10**9+7
a=[1] * (n+1)
for i in range(m):
  a[int(input())] =0

dp = [0] * (n+1)
dp[0]=1
dp[1]=1 if a[1] else 0
for i in range(2,n+1):
  dp[i] = a[i] * (dp[i-2]*a[i-2] + dp[i-1]*a[i-1]) % p
print(dp[n]%p) n,m=map(int,input().split()) n map(int,input().split()) map int input().split() ().split () input split m p = 10**9+7 p 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 dp = [0] * (n+1) dp [0] * (n+1) [0] 0 n+1 n 1 dp[0]=1 dp[0] dp 0 1 dp[1]=1 if a[1] else 0 dp[1] dp 1 1 if a[1] else 0 a[1] a 1 1 0 for i in range(2,n+1):
  dp[i] = a[i] * (dp[i-2]*a[i-2] + dp[i-1]*a[i-1]) % p i range(2,n+1) range 2 n+1 n 1 dp[i] = a[i] * (dp[i-2]*a[i-2] + dp[i-1]*a[i-1]) % p dp[i] dp i a[i] * (dp[i-2]*a[i-2] + dp[i-1]*a[i-1]) % p a[i] * (dp[i-2]*a[i-2] + dp[i-1]*a[i-1]) a[i] a i dp[i-2]*a[i-2] + dp[i-1]*a[i-1] dp[i-2]*a[i-2] dp[i-2] dp i-2 i 2 a[i-2] a i-2 i 2 dp[i-1]*a[i-1] dp[i-1] dp i-1 i 1 a[i-1] a i-1 i 1 p print(dp[n]%p) print dp[n]%p dp[n] dp n p a=[1] * (n+1) [1] * (n+1) a n,m=map(int,input().split()) map(int,input().split()) n p = 10**9+7 10**9+7 p dp = [0] * (n+1) [0] * (n+1) dp m=map(int,input().split()) map(int,input().split()) m
n,m=map(int,input().split())
p = 10**9+7
a=[1] * (n+1)
for i in range(m):
  a[int(input())] =0

dp = [0] * (n+1)
dp[0]=1
dp[1]=1 if a[1] else 0
for i in range(2,n+1):
  dp[i] = a[i] * (dp[i-2]*a[i-2] + dp[i-1]*a[i-1]) % p
print(dp[n]%p)