#include <bits/stdc++.h>
using namespace std;
bool a[100001]{};
long long memo[100001];
int n, m;
long long climb(int i) {
  if (memo[i] > -1) return memo[i];
  long long v = 0;
  if (i == n) return 1;
  if (!a[i + 1]) v += climb(i + 1);
  if (i < n - 1 && !a[i + 2]) v += climb(i + 2);
  memo[i] = v;
  return v;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  memset(memo, -1, 100001);
  cin >> n >> m;
  for (int i = 0, tmp = 0; i < m; i++) {
    cin >> tmp;
    a[tmp] = true;
  }
  cout << climb(0) % 1000000007ll;
}
