n,m=map(int,input().split())
dp=[1]*n 
for i in range(m):
    dp[int(input())-1]=0
if n==1:
  if m==1:
    print(0)
  else:
    print(1)
else:
  if dp[1]==1:
    dp[1]=1+dp[0]
  for j in range(n-2):
    if dp[j+2]==1:
      dp[j+2]+=(dp[j]+dp[j+1]-1)
  print(dp[-1]%1000000007) n,m=map(int,input().split()) n map(int,input().split()) map int input().split() ().split () input split m dp=[1]*n dp [1]*n [1] 1 n for i in range(m):
    dp[int(input())-1]=0 i range(m) range m dp[int(input())-1]=0 dp[int(input())-1] dp int(input())-1 int(input()) int input() input 1 0 if n==1:
  if m==1:
    print(0)
  else:
    print(1)
else:
  if dp[1]==1:
    dp[1]=1+dp[0]
  for j in range(n-2):
    if dp[j+2]==1:
      dp[j+2]+=(dp[j]+dp[j+1]-1)
  print(dp[-1]%1000000007) n==1 n 1 if m==1:
    print(0)
  else:
    print(1) m==1 m 1 print(0) print 0 print(1) print 1 if dp[1]==1:
    dp[1]=1+dp[0]
   dp[1]==1 dp[1] dp 1 1 dp[1]=1+dp[0] dp[1] dp 1 1+dp[0] 1 dp[0] dp 0 for j in range(n-2):
    if dp[j+2]==1:
      dp[j+2]+=(dp[j]+dp[j+1]-1)
   j range(n-2) range n-2 n 2 if dp[j+2]==1:
      dp[j+2]+=(dp[j]+dp[j+1]-1)
   dp[j+2]==1 dp[j+2] dp j+2 j 2 1 dp[j+2]+=(dp[j]+dp[j+1]-1) dp[j+2] dp j+2 j 2 dp[j]+dp[j+1]-1 dp[j]+dp[j+1] dp[j] dp j dp[j+1] dp j+1 j 1 1 print(dp[-1]%1000000007) print dp[-1]%1000000007 dp[-1] dp -1 1000000007 n,m=map(int,input().split()) map(int,input().split()) n dp=[1]*n [1]*n dp m=map(int,input().split()) map(int,input().split()) m
n,m=map(int,input().split())
dp=[1]*n 
for i in range(m):
    dp[int(input())-1]=0
if n==1:
  if m==1:
    print(0)
  else:
    print(1)
else:
  if dp[1]==1:
    dp[1]=1+dp[0]
  for j in range(n-2):
    if dp[j+2]==1:
      dp[j+2]+=(dp[j]+dp[j+1]-1)
  print(dp[-1]%1000000007)