#include <bits/stdc++.h>

using namespace std;
#define ll long long

int main() {
  int N, M;
  cin >> N >> M;
  
  bool broken[N] = {false}; // 壊れていたらtrue, そうでなければfalse 
  
  // 壊れているところをtrueにへんこうする
  for (int i = 0; i < M; i++) {
    int x;
    cin >> x;
    broken[x] = true;
  }
  
  
  vector<ll> dp(N+1, 0);
  dp[0] = 1;
  dp[1] = 1;
  if (broken[1]) {
    dp[1] = 0; // dp[0], dp[1]: 初期値設定
  }
  for (int i = 1; i < N; i++) {
    if (broken[i+1]) {
      dp[i+1] = 0;
      continue;
    }
    dp[i+1] = (dp[i] + dp[i-1]) % 1000000007;
  }
  cout << dp[N] << endl;
}