#include <bits/stdc++.h>
using namespace std;
int a[11], n;
long long dp[11][111], c[111][111];
int main() {
  memset(c, 0, sizeof(c));
  for (int i = (0); i < (111); i++) c[i][0] = 1;
  for (int i = (1); i < (111); i++)
    for (int j = (1); j <= (i); j++)
      c[i][j] = (c[i - 1][j - 1] + c[i - 1][j]) % 1000000007LL;
  cin >> n;
  for (int i = (0); i < (10); i++) cin >> a[i];
  memset(dp, 0, sizeof(dp));
  int len = 0;
  for (int i = a[1]; i <= n; i++) dp[1][i] = 1;
  len = a[1];
  for (int i = (2); i < (10); i++) {
    for (int l = len + a[i]; l <= n; l++) {
      for (int j = a[i]; j <= l - len; j++) {
        dp[i][l] += dp[i - 1][l - j] * c[l][j] % 1000000007LL;
        dp[i][l] %= 1000000007LL;
      }
    }
    len += a[i];
  }
  long long ans = 0;
  for (int l = a[0] + len; l <= n; l++) {
    if (l == 0) continue;
    for (int i = a[0]; i <= l - len; i++) {
      int k = l - i;
      ans += dp[9][k] * c[l - 1][i] % 1000000007LL;
      ans %= 1000000007LL;
    }
  }
  cout << ans << endl;
  return 0;
}
