#include <bits/stdc++.h>
const long long INF = 10000000000000;
const long long mod = 1e9 + 7;
using namespace std;
void add(long long& a, long long b) {
  a += b;
  if (a >= mod) a -= mod;
}
long long mul(long long a, long long b) { return (a * b) % mod; }
uint64_t Pow(uint64_t a, uint64_t b) {
  if (b == 0) return 1;
  uint64_t c = Pow(a, b / 2);
  if (b % 2) return (a * ((c * c) % mod)) % mod;
  return (c * c) % mod;
}
long long countDivisibles(long long A, long long B, long long M) {
  if (A % M == 0) return (B / M) - (A / M) + 1;
  return (B / M) - (A / M);
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  ;
  cout.precision(30);
  int n, m;
  cin >> n >> m;
  vector<bool> visited(n + 1, false);
  int first;
  for (int i = 0; i < m; i++) {
    cin >> first;
    visited[first] = true;
  }
  vector<long long> dp(n + 1, 0);
  dp[0] = 1;
  if (!visited[1]) dp[1] = 1;
  for (int i = 2; i <= n; i++) {
    add(dp[i], dp[i - 1]);
    add(dp[i], dp[i - 2]);
  }
  cout << dp[n] << endl;
  return 0;
}
