n, h = map(int, input().split()) a = list(map(int, input().split())) b = list(map(int, input().split())) maxv, sat, tired, 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 -= b[l] * (r - l) sat -= a[l] else: r += 1 print(maxv)