#include <iostream>
#include <cmath>
#define mas 10010
using namespace std;
unsigned long long n, d, ans, ready;
int v[mas], a[mas];
int main(){
freopen("road.in", "r", stdin);
freopen("road.out", "w", stdout);
ans=0;
cin >> n >> d;
for (int i=0;i<n-1;i++){
cin >> v[i];
}
for (int i=0;i<n;i++){
cin >> a[i];
}
int nows=0;
for (int i=0;i<n-1;i++){
ready=v[i]-nows;
if (i==n-1){ // a
nows=ceil(ready*1.0/d)*d+nows-v[i];
ans+=ceil(ready*1.0/d)*a[i];
}else if (a[i]>a[i+1]){ // b
nows=ceil(ready*1.0/d)*d+nows-v[i];
ans+=ceil(ready*1.0/d)*a[i];
}else{ // c
int lc=0;
int j;
for (j=i;j<n-1;j++){
if (a[i]>a[j]) break;
else lc+=v[j];
}
ready=lc-nows;
nows=ceil(ready*1.0/d)*d+nows-lc;
ans+=ceil(ready*1.0/d)*a[i];
i=j-1;
}
}
cout << ans << endl;
fclose(stdin);fclose(stdout);
return 0;
}
45pts