n, h = map(int, input().split()) a = list(map(int, input().split())) b = list(map(int, input().split())) t = [0 for _ in range(n+1)] for i in range(n): t[i+1] = t[i] + b[i] 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) tired -= t[r] - t[l] sat -= a[l] print(maxv)