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