n,m = map(int,input().split())
ais = []
for _ in range(m):
    ai = int(input())
    ais.append(ai)
dp = [0]*(n+1)
dp[0]=1
if len(ais)>0 and ais[0]==1:
  dp[1]=0
  ais.pop(0)
else:
  dp[1]=1
for i in range(2,n+1):
    if len(ais)>0 and ais[0]==i:
        dp[i] = 0
        ais.pop(0)
    else:
        dp[i] = dp[i-1] + dp[i-2]
print(dp[n]%1000000007) n,m = map(int,input().split()) n map(int,input().split()) map int input().split() ().split () input split m ais = [] ais [] for _ in range(m):
    ai = int(input())
    ais.append(ai) _ range(m) range m ai = int(input()) ai int(input()) int input() input ais.append(ai) ais.append ais append ai dp = [0]*(n+1) dp [0]*(n+1) [0] 0 n+1 n 1 dp[0]=1 dp[0] dp 0 1 if len(ais)>0 and ais[0]==1:
  dp[1]=0
  ais.pop(0)
else:
  dp[1]=1 len(ais)>0 and ais[0]==1 len(ais)>0 len(ais) len ais 0 ais[0]==1 ais[0] ais 0 1 dp[1]=0 dp[1] dp 1 0 ais.pop(0) ais.pop ais pop 0 dp[1]=1 dp[1] dp 1 1 for i in range(2,n+1):
    if len(ais)>0 and ais[0]==i:
        dp[i] = 0
        ais.pop(0)
    else:
        dp[i] = dp[i-1] + dp[i-2] i range(2,n+1) range 2 n+1 n 1 if len(ais)>0 and ais[0]==i:
        dp[i] = 0
        ais.pop(0)
    else:
        dp[i] = dp[i-1] + dp[i-2] len(ais)>0 and ais[0]==i len(ais)>0 len(ais) len ais 0 ais[0]==i ais[0] ais 0 i dp[i] = 0 dp[i] dp i 0 ais.pop(0) ais.pop ais pop 0 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]%1000000007) print dp[n]%1000000007 dp[n] dp n 1000000007 m = map(int,input().split()) map(int,input().split()) m dp = [0]*(n+1) [0]*(n+1) dp n,m = map(int,input().split()) map(int,input().split()) n ais = [] [] ais ai = int(input()) int(input()) ai
n,m = map(int,input().split())
ais = []
for _ in range(m):
    ai = int(input())
    ais.append(ai)
dp = [0]*(n+1)
dp[0]=1
if len(ais)>0 and ais[0]==1:
  dp[1]=0
  ais.pop(0)
else:
  dp[1]=1
for i in range(2,n+1):
    if len(ais)>0 and ais[0]==i:
        dp[i] = 0
        ais.pop(0)
    else:
        dp[i] = dp[i-1] + dp[i-2]
print(dp[n]%1000000007)
