#include <bits/stdc++.h>
using namespace std;
long long int fibo(long long int x) {
  long long int ama = 1000000007;
  long long int A, a, b = 1, c = 1, e;
  if (x == 1 || x == 2) {
    A = 1;
  } else {
    for (int i = 0; i < x - 2; i++) {
      a = b + c;
      c = b;
      b = a;
      A = a;
      A = A % ama;
    }
  }
  return A;
}
int main() {
  long long int ama = 1000000007;
  long long int n, m, A = 1, x, b = 0;
  cin >> n >> m;
  if (m != 0) {
    vector<int> a(m);
    for (int i = 0; i < m; i++) {
      cin >> a.at(i);
    }
    if (m != 1) {
      for (int i = 1; i < m; i++) {
        if (a[i] - a[i - 1] == 1) {
          b = 1;
          break;
        }
      }
    }
    if (b != 1) {
      for (int i = 0; i < m + 1; i++) {
        if (i == 0) {
          x = a[i];
          A = A * fibo(x);
        } else if (i == m) {
          x = n - a[i - 1];
          A = A * fibo(x);
        } else {
          x = a[i] - a[i - 1];
          A = A * fibo(x - 1);
        }
        A = A % ama;
      }
    }
  } else {
    A = fibo(n);
  }
  A = A % ama;
  if (b == 1) {
    cout << 0 << endl;
  } else {
    cout << A << endl;
  }
}
