#include <bits/stdc++.h>
using namespace std;
const int inf = 1e9 + 5;
const long long linf = 1e18 + 5;
const int mod = 1e9 + 7;
const int N = 100 + 5;
const int M = 10;
int n, a[M], C[N][N], dp[M][N];
int f(int cur, int n) {
  if (cur == M) return !n;
  int &r = dp[cur][n];
  if (r != -1) return r;
  r = 0;
  for (int i = a[cur]; i <= n; i++)
    r = (r + (long long)f(cur + 1, n - i) * C[n][i] % mod) % mod;
  return r;
}
int main() {
  ios ::sync_with_stdio(0);
  memset(dp, -1, sizeof(dp));
  C[0][0] = 1;
  for (int i = 1; i <= N - 1; i++) {
    C[i][0] = 1;
    for (int j = 1; j <= N - 1; j++)
      C[i][j] = (C[i - 1][j - 1] + C[i - 1][j]) % mod;
  }
  cin >> n;
  for (int i = 0; i <= 9; i++) cin >> a[i];
  int st = a[0];
  int ans = 0;
  for (int i = 1; i <= n; i++) {
    a[0] = st;
    memset(dp, -1, sizeof(dp));
    ans += f(0, i);
    if (a[0]) a[0]--;
    memset(dp, -1, sizeof(dp));
    ans -= f(0, i - 1);
    ans = (ans % mod + mod) % mod;
  }
  cout << ans << '\n';
  return 0;
}
