N, H = map(int, input().split()) A = list(map(int, input().split())) B = list(map(int, input().split())) Bc = [0] * (N + 1) for i in range(N): Bc[i + 1] = Bc[i] + B[i] from collections import * Q = deque() v, ans, temp = 0, 0, 0 for i in range(N): Q.append(i) v += len(Q) * B[i] temp += A[i] while v > H: ind = Q.popleft() v -= Bc[i + 1] - Bc[ind] temp -= A[ind] ans = max(ans, temp) print(ans)