n,k=map(int,input().split())
w=list(map(int,input().split()))
c=list(map(int,input().split()))
d=[0]*len(c)
i=0
while i<len(c):
    ying=0
    for j in range(i+1,len(c)):
        if c[i]<c[j]:#未来比现在贵
            ying+=w[j]#储备上
        else:#等价或者未来便宜，不买了
            break
    d[i]=(ying)
    ying=0
    i+=1
allsum=0
nk=0
for i in range(len(c)):
    if nk>=w[i]:
        nk-=w[i]
    else:
        allsum+=(w[i]-nk)*c[i]
        nk=0
    
    if i+1 < len(c):
        ying=d[i]
        if k-nk>=ying:
            nk+=ying
            allsum+=ying*c[i] #如果容量足够就买上全部
        else:
            allsum+=((k-nk)*c[i])#不够就买满
            nk=k
print(allsum)