#include<bits/stdc++.h>
using namespace std;
long long s[100005],a[100005];
int main(){
long long n;
long long d;
double min1=-1;
long long cnt=0;
scanf("%lld%lld",&n,&d);
for(int i=0;i<n-1;i++)
scanf("%d",&s[i]);
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
for(int i=1;i<n;i++)
min1=min(a[i],a[i-1]);
if(a[0]==min1){
double ju=0;
for(int i=0;i<n;i++)
ju+=s[i];
cnt=cnt+ceil(ju/d)*min1;
printf("%lld",cnt);
return 0;
}
long long j;
double ju=0,you=0;
for(int i=0;i<n-1;){
for(j=i;a[i]<=a[j];j++){
ju+=s[j];
}
you+=ceil(ju/d)-ju/d;
long long youqian=(ceil(ju/d))*a[i];
if(you>=1){
youqian=(ceil(ju/d)-floor(you))*a[i];
you-=floor(you);
}
cnt+=youqian;
i=j;
ju=0;
}
printf("%lld",cnt);
return 0;
}```