# 後ろから累積和してみたが高速計算できない # しゃくとり法だった, ABC032C利用 N, H = map(int, input().split()) A = [0]+list(map(int, input().split())) B = [0]+list(map(int, input().split())) A_cumu = [] temp = 0 for a in A: temp += a A_cumu.append(temp) B_cumu = [] temp = 0 for b in B: temp += b B_cumu.append(temp) #print('A', A) #print('A_cumu', A_cumu) #print('B', B) #print('B_cumu', B_cumu) right = 1 left = 1 ans = 0 calc = 0 while left < N+1 and right < N+1: while right < N+1: #print('right', right, '(right+1-left)', (right+1-left)) if calc+B[right]*(right+1-left) <= H: calc += B[right]*(right+1-left) ans = max(ans, A_cumu[right]-A_cumu[left-1]) #print('(right+1-left)', (right+1-left), 'calc', calc, 'ans', ans) right += 1 else: break #print('前', 'left', left, 'right', right, 'calc', calc, 'ans', ans) calc -= (B_cumu[right-1]-B_cumu[left-1]) left += 1 if left >= right: right = left calc = 0 #print('後', 'left', left, 'right', right, 'calc', calc, 'ans', ans) print(ans)