#include <bits/stdc++.h>
using namespace std;
long long case_num[100001];
int main() {
  int N, M;
  cin >> N >> M;
  for (int i = 1; i <= N; i++) case_num[i] = 0;
  case_num[0] = 1;
  long long now_pos = 0;
  bool cannot_move = false;
  for (int i = 0; i < M; i++) {
    int a;
    cin >> a;
    for (int new_pos = now_pos + 1; new_pos < a; new_pos++) {
      if (new_pos == 1) {
        case_num[new_pos] = case_num[new_pos - 1];
      } else {
        case_num[new_pos] = case_num[new_pos - 1] + case_num[new_pos - 2];
      }
      case_num[new_pos] = case_num[new_pos] % 1000000007;
    }
    now_pos = a + 1;
    case_num[now_pos] = case_num[now_pos - 2];
  }
  for (int new_pos = now_pos + 1; new_pos <= N; new_pos++) {
    if (new_pos == 1) {
      case_num[new_pos] = case_num[new_pos - 1];
    } else {
      case_num[new_pos] = case_num[new_pos - 1] + case_num[new_pos - 2];
    }
    case_num[new_pos] = case_num[new_pos] % 1000000007;
  }
  cout << case_num[N] << endl;
  return 0;
}
