#include<bits/stdc++.h>
using namespace std;
const int MAXN=1000000+10;
long long a[MAXN],b[MAXN],c[MAXN];
int main(){
long long n,d;
cin>>n>>d;
for(int i=1;i<n;i++){
cin>>a[i];
a[i]+=a[i-1];
}
long long minn=100000,p=0;
for(int i=1;i<=n;i++){
cin>>b[i];
if(b[i]<minn)
minn=b[i],c[p++]=i;
}
if(c[p-1]!=n)c[p]=n;
long long oil=0,sum=0;
for(int i=0;c[i+1]!=0;i++){
int now=c[i],next=c[i+1];
int need=a[next-1]-a[now-1];
if(need>=oil){
sum+=ceil(1.0*(need-oil)/d)*b[now];
oil+=ceil(1.0*(need-oil)/d)*d;
}
oil-=need;
}
cout<<sum;
return 0;
}