N,H = map(int,input().split()) A = [0]+list(map(int,input().split())) B = [0]+list(map(int,input().split())) cumA = [0]*(N+1) cumB = [0]*(N+1) for i in range(1,N+1): cumA[i] = cumA[i-1]+A[i] cumB[i] = cumB[i-1]+B[i] ans = 0 hirou = 0 r = 0 for l in range(1,N+1): while hirou<=H: r += 1 if r>N:break hirou += (r-l+1)*B[r] if r>N: r -= 1 if hirou>H: hirou -= (r-l+1)*B[r] r -= 1 ans = max(ans,cumA[r]-cumA[l-1]) hirou -= (cumB[r]-cumB[l-1]) print(ans)