#include <bits/stdc++.h>
int main(void) {
  int N, M, a[100005], b[100005], i;
  long long F[100005], c;
  c = 1LL;
  scanf("%d %d", &N, &M);
  F[0] = 0;
  F[1] = 1;
  F[2] = 1;
  for (i = 3; i <= 100000; i++) {
    F[i] = (F[i - 1] + F[i - 2]) % 1000000007;
  }
  if (M != 0) {
    for (i = 1; i <= M; i++) {
      scanf("%d", &a[i]);
    }
    b[1] = a[1];
    b[M + 1] = N - a[M];
    for (i = 2; i <= M; i++) {
      b[i] = a[i] - a[i - 1] - 1;
    }
    for (i = 1; i <= M + 1; i++) {
      c = (c * F[b[i]]) % 1000000007;
    }
    printf("%lld\n", c);
  } else {
    printf("%lld", F[N + 1]);
  }
  return 0;
}
