#include<bits/stdc++.h>
using namespace std;
const int N=1e5+1;
int jl[N],m[N],s[N];
int n,d;
int find(int w){
for(int j=w+1;j<=n;j++){
if(m[j]<m[w])return j;
}
return n;
}
int main()
{
long long ans=0;
cin>>n>>d;
for(int i=1;i<n;i++){
cin>>jl[i];
s[i+1]=s[i]+jl[i];
}
for(int i=1;i<=n;i++)cin>>m[i];
int w=1;
double le=0;
while(w<n){
int a=find(w);
int lc=s[a]-s[w];
double sum=ceil(lc*1.0/d-le);
ans+=sum*m[w];
le+=sum;
w=a;
le-=lc*1.0/d;
}
cout<<ans;
return 0;
}
