#include #include using namespace std; using namespace atcoder; using ll = long long; using ld = long double; using mint = modint998244353; int main() { ll N, H; cin >> N >> H; vector A(N), B(N); for (int i = 0; i < N; i++) cin >> A[i]; for (int i = 0; i < N; i++) cin >> B[i]; vector sumA(N + 1), sumB(N + 1); for (int i = 0; i < N; i++) { sumA[i + 1] = sumA[i] + A[i]; sumB[i + 1] = sumB[i] + B[i]; } int L = 0, R = 0; ll ans = 0; while (true) { if (R >= N) break; ll BB = 0; for (int i = 1; i <= R - L + 1; i++) { BB += sumB[R + 1] - sumB[L + i - 1]; } if (BB <= H) { ans = max(ans, sumA[R + 1] - sumA[L]); R++; } else { L++; R = L; } } cout << ans << endl; return 0; }