def work(dis,pri,re):
sum1=0
dis-=re*d
if dis%d==0:
sum1=dis//d*pri
else:
sum1=(dis//d+1)*pri
re=dis//d+1-dis/d
return sum1,re
n,d=map(int,input().split())
v=list(map(int,input().split()))
a=list(map(int,input().split()))
i=sum1=0
l=0
flag=0
while i<=len(v)-1:
if i==len(v)-1:
if l*d<v[i]:
sum2,l=work(v[i],a[i],l)
elif flag:
if a[i]<a[i+1]:
sum2,l=work(v[i+1],a[i],l)
flag=0
elif a[i]>a[i+1]:
if l*d<v[i]:
sum2,l=work(v[i],a[i],l)
else:
l-=v[i]/d
else:
if l*d>=v[i]+v[i+1]:
l-=(v[i])/d
else:
sum2,l=work(v[i]+v[i+1],a[i],l)
flag=1
sum1+=sum2
print(sum1)
i+=1
print(sum1)
'''
5 4
10 10 10 10
9 8 9 6 5
'''