integer(8),allocatable,dimension(:)::DP
integer(8) N,M
integer(8) a,mo
read*,N,M
allocate(DP(0:N))
mo=1000000007
DP=-1
do i=1,M
  read*,a
  DP(a)=0
end do
DP(0)=1
if(DP(1)==-1)DP(1)=1
if(N>=2)then
  do i=2,N
    if(DP(i)==-1)DP(i)=mod(DP(i-1)+DP(i-2),mo)
  end do
end do
print"(I0)",DP(N)
end