ll n, m, a[maxn], c[10], w[10], dp[5][maxn], sum[maxn];
void slove(){
for(int i = 1; i <= 4; i ++){
cin >> c[i];
}
cin >> n;
for(int i = 1; i <= n; i ++){
for(int j = 1; j <= 4; j ++){
cin >> w[j];
}
cin >> m;
memset(dp, 0, sizeof(dp));
dp[0][0] = 1;
for(int j = 1; j <= 4; j ++){
sum[0] = dp[j - 1][0];
for(int k = 0; k <= m; k ++){
if(k - c[j] >= 0) sum[k] = sum[k - c[j]] + dp[j - 1][k];
else sum[k] = dp[j - 1][k];
}
for(int k = 0; k <= m; k ++){
dp[j][k] += sum[k] - sum[max(0ll, k - c[j] * (w[j] + 1))];
if(k - c[j] * (w[j] + 1) < 0) dp[j][k] += sum[0];
}
}
cout << dp[4][m] << '\n';
}
}