#include <bits/stdc++.h>
using namespace std;
const int MOD = 1000000007;
int N, M;
set<int> S;
vector<long long> memo;
long long step(int i, vector<long long> &memo) {
  if (memo.at(i) != -1) return memo.at(i);
  if (i != 0 && !S.count(i)) return 0;
  if (i == N) return 1;
  step(i + 2, memo);
  step(i + 1, memo);
  return memo.at(i) = step(i + 2, memo) + step(i + 1, memo);
}
int main() {
  cin >> N >> M;
  memo.resize(N + 2, -1);
  for (int i = 1; i <= N; i++) {
    S.insert(i);
  }
  int x;
  for (int i = 0; i < M; i++) {
    cin >> x;
    S.erase(x);
  }
  cout << step(0, memo) % MOD << endl;
}
