#include <bits/stdc++.h>
using namespace std;
int toInt(string s) {
  istringstream sin(s);
  int t;
  sin >> t;
  return t;
}
template <class T>
string toString(T x) {
  ostringstream sout;
  sout << x;
  return sout.str();
}
template <class T>
void chmin(T &t, T f) {
  if (t > f) t = f;
}
template <class T>
void chmax(T &t, T f) {
  if (t < f) t = f;
}
long long dp[15][110], C[110][110];
int main() {
  int n, a[15];
  int i, j, k, d;
  cin >> n;
  for (i = (0); i < (10); i++) cin >> a[i];
  for (i = (0); i < (n + 1); i++) C[i][0] = C[i][i] = 1;
  for (i = (1); i < (n + 1); i++)
    for (j = (1); j < (i); j++)
      C[i][j] = C[i][i - j] = (C[i - 1][j - 1] + C[i - 1][j]) % 1000000007;
  long long ans = 0;
  for (d = (1); d < (10); d++) {
    memset((dp), 0, sizeof(dp));
    vector<int> v(a, a + 10);
    if (v[d]) v[d]--;
    dp[0][0] = 1;
    for (k = (0); k < (10); k++)
      for (i = (v[k]); i < (n); i++)
        for (j = 0; j + i < n; j++)
          dp[k + 1][i + j] =
              (dp[k + 1][i + j] + dp[k][j] * C[i + j][i]) % 1000000007;
    for (i = (0); i < (n); i++) ans = (ans + dp[k][i]) % 1000000007;
  }
  cout << ans << endl;
  return 0;
}
