#include <bits/stdc++.h>
using namespace std;
long long N, M;
vector<bool> h(100010, true);
vector<long long> dp(100010, 0);
long long rec(long long i) {
  if (dp[i] != 0) return dp[i];
  if (h[i] == false) return 0;
  if (i == 0) return 1;
  long long res = 0;
  if (h[i - 1]) {
    res += rec(i - 1);
    res %= 1000000007;
  }
  if (i > 1)
    if (h[i - 2]) {
      res += rec(i - 2);
      res %= 1000000007;
    }
  return dp[i] = res;
}
int main() {
  cin >> N >> M;
  for (int i = 0; i < (M); i++) {
    int a;
    cin >> a;
    h[a] = false;
  }
  for (int i = 0; i < (N + 1); i++) dp[i] = 0;
  cout << rec(N) << endl;
  return 0;
}
