#include <bits/stdc++.h>
using namespace std;
using vt = long long;
const long long MOD = 1000000007;
int main() {
  long long n, m;
  cin >> n >> m;
  vector<long long> a;
  for (vt i = 0; i < (vt)(m); i++) {
    long long A;
    cin >> A;
    a.push_back(A);
  }
  if (n < 3) {
    cout << n - m;
    return 0;
  }
  vector<long long> dp(n + 1, 0);
  dp.at(0) = 1;
  dp.at(1) = 1;
  long long k = 0;
  long long x = a.at(k);
  if (x == 1) {
    dp.at(1) = 0;
    if (k < m - 1) k++;
  }
  for (vt i = 0; i < (vt)(n - 1); i++) {
    dp.at(i + 2) = dp.at(i + 1) + dp.at(i);
    if (i + 2 == a.at(k)) {
      dp.at(i + 2) = 0;
      if (k < m - 1) k++;
    }
    dp.at(i + 2) %= MOD;
  }
  cout << dp.at(n) % MOD;
  return 0;
}
