#include <bits/stdc++.h>
using namespace std;
int func(int i, int j) {
  vector<int> dp(j - i + 1);
  dp[0] = 0;
  dp[1] = 1;
  for (int k = 1; k < j - i + 1; k++) {
    dp[i] = dp[i - 1] + dp[i - 2];
  }
  return dp[j - i];
}
int main() {
  int n, m;
  cin >> n >> m;
  vector<int> h(m);
  for (int i = 0; i < m; i++) {
    cin >> h.at(i);
  }
  int stop = 0;
  for (int i = 0; i < m - 1; i++) {
    if (h.at(i + 1) - h.at(i) == 1) {
      stop = -1;
      break;
    }
  }
  if (stop == -1) {
    cout << 0 << endl;
  } else {
    long long ans = 0;
    for (int k = 0; k < m - 1; k++) {
      ans += func(h.at(k) + 1, h.at(k + 1) - 1);
    }
    ans += func(0, h.at(0) - 1);
    ans += func(h.at(m - 1) + 1, n);
    ans %= 1000000007;
    cout << ans << endl;
  }
  return 0;
}
