#include using namespace std; int main () { using ll = long long; int N; ll H; cin >> N >> H; ll ans = 0; std::vector A(N), B(N); for (auto& a : A) cin >> a; for (auto& b : B) cin >> b; int r = 0; ll hsum = 0; ll asum = 0; ll bsum = 0; for (int l = 0; l < N; l ++) { while (r < N) { ll nh = hsum + (r - l + 1) * B[r]; if (nh > H) { break; } else { hsum = nh; asum += A[r]; bsum += B[r]; r ++; } } ans = max(ans, asum); if (l < r) { asum -= A[l]; hsum -= bsum; bsum -= B[l]; } else{ r ++; } } cout << ans << endl; }