#define _GLIBCXX_DEBUG
#include <bits/stdc++.h>
#include <algorithm>
#define rep(i,n) for(ll i=0;i<(n);++i)
#define all(a) (a).begin(),(a).end()
using namespace std;
using Graph = vector<vector<int>>;
typedef long long ll;
const int mod= 1e+9+7;

int main(){
    int N,M; cin>>N>>M;
    vector<bool>b(N+1,true);
    rep(i,M){
        int m; cin>>m;
        b[m]=false;
    }
    vector<ll>dp(N+1);
    dp[0]=1;
    rep(i,N){
        for(int j=i+1;j <= min(N,i+2);j++){
            if(b[j]){
                dp[j]+=dp[i];
                dp[j]%=mod;
            }
        }
    }
    cout<<dp[N]<<endl;
    return 0;
}
