#include <bits/stdc++.h>
using namespace std;
long long FIB(int a) {
  long long b, c;
  long long ans = 1;
  b = c = 1;
  if (a < 3) {
    return 1;
  } else {
    for (int i = 0; i < (a - 2); i++) {
      ans = ((b + c) % 1000000007);
      c = b;
      b = ans;
    }
    return ans;
  }
}
int main() {
  int m, n, t, s;
  t = 0;
  long long ans = 1;
  cin >> n >> m;
  for (int i = 0; i < (m); i++) {
    cin >> s;
    if (s == t) {
      ans = 0;
      break;
    }
    ans *= ((FIB(s - t)) % 1000000007);
    t = (s + 1);
  }
  ans *= (FIB(n - t + 1) % 1000000007);
  ans %= 1000000007;
  cout << ans << endl;
  return 0;
}
