#include <bits/stdc++.h>
using namespace std;
const long long int mod = 1000000000 + 7;
long long int stair(int x) {
  if (x == 0) {
    return 1;
  } else if (x == 1) {
    return 1;
  } else if (x == 2) {
    return 2;
  } else {
    return (stair(x - 1) + stair(x - 2)) % mod;
  }
}
int main() {
  int N, M;
  cin >> N >> M;
  vector<int> s(M + 2);
  s.at(0) = -1;
  s.at(M + 1) = N + 1;
  for (int i = 1; i < M + 1; i++) {
    cin >> s.at(i);
  }
  long long int count = 1;
  int sa = 0;
  for (int i = 1; i < M + 2; i++) {
    sa = s.at(i) - s.at(i - 1);
    if (sa == 1) {
      cout << 0 << endl;
      break;
    } else {
      count *= stair(sa - 2) % mod;
    }
  }
  printf("%lld", count);
}
