n, h = map(int, input().split()) a = list(map(int, input().split())) b = list(map(int, input().split())) ab = [0] * (n + 1) for i in range(n): ab[i + 1] = ab[i] + b[i] maxv, tired, sat, r = 0, 0, 0, 0 for l in range(n): while r < n and tired + (r - l + 1) * b[r] <= h: tired += (r - l + 1) * b[r] sat += a[r] r += 1 maxv = max(maxv, sat) if r > l: tired -= ab[r] - ab[l] sat -= a[l] print(maxv)