#include <bits/stdc++.h>
using namespace std;
long long Fibonacci_recursive(long long n) {
  if (n == 0) {
    return 0;
  } else if (n == 1) {
    return 1;
  } else {
    return Fibonacci_recursive(n - 2) + Fibonacci_recursive(n - 1);
  }
}
int main() {
  long long int N, M;
  long long int b = 0;
  long long int c = 0;
  long long int ans = 1;
  cin >> N >> M;
  long long int a[M];
  for (int i = 0; i < (int)(M); i++) {
    cin >> a[i];
  }
  for (int j = 0; j <= N; j++) {
    if (j == a[c]) {
      if (b == 0) {
        cout << 0;
        return 0;
      }
      ans *= Fibonacci_recursive(b);
      c++;
      b = 0;
    }
    if (j == N && j != a[c]) {
      ans *= Fibonacci_recursive(b);
      break;
    }
    b++;
  }
  cout << ans % 1000000007;
  return 0;
}
