#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N = 1e6 + 10;
ll n, d;
ll a[N], sum[N], p[N];
ll find1(ll now) {
for(int i = now + 1; i <= n; i ++) {
if(p[i] < p[now]) {
return i;
}
}
return n;
}
ll find2(ll now, ll next) {
return sum[next] - sum[now];
}
int main(){
cin >> n >> d;
for(int i = 2; i <= n; i ++) {
cin >> a[i];
sum[i] = sum[i - 1] + a[i];
}
for(int i = 1; i <= n; i ++) {
cin >> p[i];
}
ll now = 1;
ll ans = 0;
ll x = 0;
while(now) {
if(now == n) break;
ll next = find1(now);
ll dx = find2(now, next);
dx -= x;
if(dx % d == 0) {
ans = ans + dx / d * p[now];
x = 0;
} else {
ans = ans + (dx / d + 1) * p[now];
x = (dx / d + 1) * d - dx;
}
now = next;
}
cout << ans << endl;
return 0;
}