#include<bits/stdc++.h>
#define ll long long
#define db double
using namespace std;
const ll N=1e5+5;
ll n,d,v[N],a[N],sumv[N],ans;
db now;
vector<ll> vec;
int main(){
scanf("%lld%lld",&n,&d);
for(ll i=1;i<n;i++){
scanf("%lld",&v[i]);
sumv[i]=sumv[i-1]+v[i];
}
for(ll i=1;i<=n;i++){
scanf("%lld",&a[i]);
if(i==1||a[vec[vec.size()-1]]>a[i])
vec.push_back(i);
}
for(ll i=0,nextlength,oil;i<vec.size()-1;i++){
nextlength=sumv[vec[i+1]-1]-sumv[vec[i]-1];
if(now<nextlength){
oil=ceil(1.0*(nextlength-now)/d);
ans+=oil*a[vec[i]];
now+=oil*d;
}
now-=nextlength;
}
printf("%lld",ans);
return 0;
}