#include using namespace std; int main(){ int N, H; cin >> N >> H; vector A(N); for (int i = 0; i < N; i++){ cin >> A[i]; } vector B(N); for (int i = 0; i < N; i++){ cin >> B[i]; } vector S(N + 1); S[0] = 0; for (int i = 0; i < N; i++){ S[i + 1] = S[i] + B[i]; } int L = 0, R = 0; long long sum1 = 0, sum2 = 0; long long ans = 0; while (true){ if (sum2 <= H){ ans = max(ans, sum1); if (R == N){ break; } sum1 += A[R]; sum2 += (long long) (R - L + 1) * B[R]; R++; } else { sum1 -= A[L]; sum2 -= S[R] - S[L]; L++; } } cout << ans << endl; }