#include <bits/stdc++.h>
using namespace std;
int gcd(int a, int b) { return b ? gcd(b, a % b) : a; };
int lcm(int a, int b) { return a * b / gcd(a, b); };
long long cond(int a, int b) {
  long long n = 1, m = 1;
  for (int i = 0; i < b; i++) n *= a - i;
  for (int i = b; i > 0; i--) m *= i;
  return n / m;
}
long long pyon(long long n) {
  long long all, ans = 0;
  for (long long i = 0; i <= n / 2; i++) {
    all = n - i;
    ans += cond(all, i);
  }
  return ans;
}
int main() {
  long long n, m;
  cin >> n >> m;
  long long a[m];
  for (int i = 0; i < (int)(m); i++) cin >> a[i];
  long long ans = pyon(n);
  for (int i = 0; i < (int)(m); i++) {
    ans -= pyon(a[i]) * pyon(n - a[i]);
    ans %= 1000000007;
  }
  cout << ans << endl;
  return 0;
}
