#include <bits/stdc++.h>
using namespace std;
int n,d;
long long ans;
long long qz[100005];
int a[100005],v[100005];
int main(){
cin >>n>>d;
for(int i=1;i<n;i++){
cin >>v[i];
qz[i]=qz[i-1]+v[i];
}
for(int i=1;i<=n;i++)
cin >>a[i];
long long num=0;
int t=1;
while(t<n){
bool tf=false;
for(int i=t+1;i<n;i++){
if(a[i]<a[t]){
tf=true;
if(num>=(qz[i-1]-qz[t-1])){
num-=(qz[i-1]-qz[t-1]);
t=i;
}else{
long long temp=ceil((qz[i-1]-qz[t-1]-num)*1.0/d);
ans+=temp*a[t];
num=temp*d%(qz[i-1]-qz[t-1]-num);
t=i;
}
break;
}
}
if(tf==false){
if(num<(qz[n-1]-qz[t-1])){
ans+=ceil((qz[n-1]-qz[t-1]-num)*1.0/d)*a[t];
break;
}
}
}
cout<<ans;
return 0;
}