#include <iostream>
using namespace std;
static const long long mod = 1000000007;
static const int MAX_N = 100000;

int main(void){
    // 入力
    int n,m;
    int a[MAX_N+1];
    cin >> n >> m;

    // stairs[i]=1 => i段目は壊れている
    int stairs[n+1]={0};
    for(int i=1; i<=m; i++){
        cin >> a[i];
        stairs[a[i]] = 1;
    }

    // dp[i]:=i段目までの行き方の総数
    int dp[n+1];
    dp[0]=1;
    if(stairs[1]==0) dp[1]=1;
    else dp[1]=0;

    for(int i=0; i<n-1; i++){
        if(stairs[i+2]==0){
            dp[i+2] = dp[i+1] + dp[i];
        }
        else{
            dp[i+2] = 0;
        }
    }

    // 出力
    cout << dp[n]%mod;


}