#include <bits/stdc++.h>
using namespace std;
int cnt = 0;
void stairCheck(int N, int M, int a[M], int j) {
  if (j == N) {
    cnt++;
    return;
  }
  for (int k = 0; k < M; k++) {
    if ((j + 1) == a[k]) {
      if ((j + 2) == a[k + 1]) {
        return;
      } else {
        stairCheck(N, M, a, j + 2);
        return;
      }
    }
    if ((j + 2) == a[k]) {
      stairCheck(N, M, a, j + 1);
      return;
    }
  }
  if ((j + 1) <= N) stairCheck(N, M, a, j + 1);
  if ((j + 2) <= N) stairCheck(N, M, a, j + 2);
  return;
}
int main() {
  int N, M;
  scanf("%d %d", &N, &M);
  int a[M];
  for (int i = 0; i < M; i++) {
    scanf("%d", &a[i]);
  }
  int count = 0;
  stairCheck(N, M, a, 0);
  printf("%d\n", (cnt % 1000000007));
  return 0;
}
