#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

int main() {
    int N;              //段数
    int M;              //壊れた床の個数
    cin >> N >> M;
    int a[M];           //何段目の床が壊れているか
    for(int i = 0; i < M; i++) {
        cin >> a[i];
    }
    int f[N+2];         //i段目からスタートしたときの組み合わせの数
    const int mod = 1000000007;

    for(int i = 0; i < M; i++) {
        f(a[i]) = 0;
    }

    for(int i = N-1; 0 <= i; i--) {
        f[N+1] = 0;
        f[N] = 1;
        f[i] = f[i+1] + f[i+2];
    }

    cout << f[0] % mod;
    
    cout << endl;
    return 0;
}