#include <bits/stdc++.h>
using namespace std;
long long int a[10];
const long long int MAX = 110;
const long long int MOD = 1000 * 1000 * 1000 + 7;
long long int d[MAX][10], d2[MAX][10], s[MAX];
long long int e[MAX][MAX];
int main() {
  long long int n;
  cin >> n;
  for (int i = 0; i < 10; i++) {
    cin >> a[i];
  }
  s[0] = a[0];
  for (int i = 1; i < 10; i++) {
    s[i] = s[i - 1] + a[i];
  }
  if (n == 1 and s[9] == 1) {
    return cout << 1 << endl, 0;
  }
  for (int i = 0; i < MAX; i++) {
    e[i][i] = 1;
    e[i][1] = i;
  }
  for (int i = 1; i < MAX; i++) {
    e[i][0] = 1;
  }
  for (int i = 1; i < MAX; i++) {
    for (int j = 2; j < i; j++) {
      e[i][j] = e[i - 1][j] + e[i - 1][j - 1];
      e[i][j] %= MOD;
    }
  }
  for (int i = a[1]; i <= n; i++) {
    d[i][1] = 1;
  }
  for (int i = 2; i <= 9; i++) {
    for (int j = 0; j <= n; j++) {
      for (int k = a[i]; k <= n; k++) {
        d[j][i] += (d[j - k][i - 1] * e[j][k]);
        d[j][i] %= MOD;
      }
    }
  }
  long long int ans = 0;
  for (int i = 1; i <= n; i++) {
    for (int j = a[0]; j <= n - i; j++) {
      d[i + j][0] += (d[i][9] * e[i + j - 1][j]);
      d[i + j][0] %= MOD;
    }
  }
  for (int i = 1; i <= n; i++) {
    ans += d[i][0];
    ans %= MOD;
  }
  cout << ans << endl;
}
