#include <bits/stdc++.h>
#define rep(i,n) for(int i=0;i<n;i++)
#define per(i,n) for(int i=n;i>0;i--)
#define rep1(i,s,n) for(int i=s;i<n;i++)
#define d 1000000007
using namespace std;
typedef long long ll;

ll fivo(int n){
    if(n==1 || n==2) return 1;
    else return fivo(n-1)+fivo(n-2);
}

int main(){
   int n,m;
   cin >> n >> m;
   if(m!=0){
       vector<int> a(m),sa(m+1);
       rep(i,m) cin >> a[i];
   }
   ll ans=1;
   bool flag=true;
   if(m!=0){
       rep(i,m-1){
       if(a[i+1]-a[i]==1){
           flag=false;
           break;
       }
   }
   if(!flag) cout << 0;
   else{
       sa[0]=a[0];
       sa[m]=n-a[m-1];
       rep1(i,1,m) sa[i]=a[i]-a[i-1]-1;
       rep(i,m+1){
           ans*=fivo(sa[i]);
       }
       cout << ans%d;
   }
   }else{
       cout << fivo(n+1)%d;
   }
}