#include <bits/stdc++.h>
long long fib[100];
long long fibonatti(int n) {
  long long a = 0;
  long long b = 1;
  for (int i = 0; i < n - 1; i++) {
    long long c = b;
    b = a + b;
    a = c;
  }
  return b;
}
int main() {
  int n;
  scanf("%d", &n);
  int a[n + 1];
  for (int i = 0; i < n + 1; i++) {
    a[i] = 1;
  }
  int m;
  scanf("%d", &m);
  for (int i = 0; i < m; i++) {
    int an;
    scanf("%d", &an);
    a[an] = 0;
  }
  long long prod = 1;
  int ck = 0;
  long long sum = 0;
  for (int i = 0; i < n + 1; i++) {
    if (a[i] == 0) {
      if (ck == 1) {
        prod = 0;
        break;
      }
      prod *= fibonatti(sum);
      sum = 0;
      ck = 1;
    } else {
      sum++;
      ck = 0;
    }
  }
  prod *= fibonatti(sum);
  printf("%d\n", prod % 1000000007);
  return 0;
}
