#include<bits/stdc++.h>
using namespace std;
int v[100010];
int a[100010];
int minpricenum[100010];
long long sum[100010];
int t[100010];
int main(){
int n,d;
cin>>n>>d;
for(int i=1;i<n;i++){
scanf("%d",&v[i]);
}
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
}
sum[1]=0;
for(int i=2;i<=n;i++){
sum[i]=sum[i-1]+v[i-1];
}
minpricenum[1]=1;
for(int i=2;i<=n;i++){
if(a[minpricenum[i-1]]>a[i]){
minpricenum[i]=i;
}
else{
minpricenum[i]=minpricenum[i-1];
}
}
int was=n;
while(was>1){
if(minpricenum[was]==was){
t[minpricenum[was-1]]=was;
was=minpricenum[was-1];
}
else{
t[minpricenum[was]]=was;
was=minpricenum[was];
}
}
int cnt=0,oil=0,ans=0;
int i=1;
while(cnt<sum[n]){
if((sum[t[i]]-cnt)%d==0){
ans+=((sum[t[i]]-cnt)/d)*a[i];
cnt+=((sum[t[i]]-cnt)/d)*d;
}
else {
ans+=((sum[t[i]]-cnt)/d+1)*a[i];
cnt+=((sum[t[i]]-cnt)/d+1)*d;
}
i=t[i];
}
cout<<ans;
return 0;
}