N,H=map(int,input().split()) A=list(map(int,input().split())) B=list(map(int,input().split())) ans=0 R=0 cumA=0 cumB=0 resB=0 for L in range(N): while R!=N: ncumA=cumA+A[R] ncumB=cumB+B[R]*(R-L+1) nresB=resB+B[R] if ncumB<=H: R+=1 cumA=ncumA cumB=ncumB resB=nresB else: break ans=max(ans,cumA) cumA-=A[L] cumB-=resB resB-=B[L] print(ans)