#include <bits/stdc++.h>
using namespace std;
long long dp[110];
int N;
long long dfs(int here, int N) {
  if (dp[here] >= 0) {
    return dp[here];
  }
  long long res = 0;
  if (here == N) {
    return dp[here] = 1;
  }
  if (here > N) return dp[here] = 0;
  res += dfs(here + 1, N);
  res += dfs(here + 2, N);
  return dp[here] = res;
}
void solve() { cout << dfs(0, N) % 1000000007 << endl; }
int main() {
  memset(dp, -1, sizeof(dp));
  int M;
  cin >> N >> M;
  int _a;
  for (int i = 0; i < M; ++i) {
    cin >> _a;
    dp[_a] = 0;
  }
  solve();
  return 0;
}
