#include <bits/stdc++.h>
using namespace std;
const int mod = 1000000007;
int main() {
  int N, M;
  long long ans = 0, a1 = 0, a2 = 1;
  cin >> N >> M;
  vector<int> a(M);
  if (M != 0) {
    for (int i = 0; i < M; i++) {
      cin >> a.at(i);
    }
  }
  int p = M - 1;
  for (int i = N; i > -1; i--) {
    if (i == N) {
      continue;
    } else if (i == N - 1) {
      if (i == a.at(p)) {
        a1 = 0;
        p--;
      } else {
        a1 = 1;
        ans = 1;
      }
    } else {
      if (p > -1 && i == a.at(p)) {
        p--;
        a2 = a1;
        a1 = 0;
      } else {
        ans = (a1 + a2);
        a2 = a1;
        a1 = ans;
        cerr << ans << endl;
      }
      if (a1 == 0 && a2 == 0) {
        ans = 0;
        break;
      }
    }
  }
  cout << ans % mod;
}
