#include <bits/stdc++.h>
using namespace std;
long long memo[1000002];
long long n;
unordered_set<long long> s;
long long dp(long long x) {
  if (s.count(x)) {
    memo[x] = 0;
    return 0;
  }
  long long to_add = 0;
  if (x == n) {
    return 1;
  }
  if (memo[x] != -1)
    return memo[x];
  else {
    to_add += dp(x + 1);
    if (x + 2 <= n) to_add += dp(x + 2);
    memo[x] = to_add % 1000000007;
  }
}
int main() {
  memset(memo, -1, sizeof(memo));
  long long m, t;
  cin >> n >> m;
  while (m--) {
    cin >> t;
    s.insert(t);
  }
  cout << dp(0) << '\n';
  return 0;
}
