贪心
#include<bits/stdc++.h>
#define N 200005
#define int long long
using namespace std;
int n, m, i, j, k, cnt, a[N], b[N];
int new_oil, oil, money;
signed main(){
// freopen("road.in", "r", stdin);
// freopen("road.out", "w", stdout);
scanf("%lld%lld", &n, &m);
for(i=1; i<=n-1; ++i){
scanf("%lld", &a[i]);
}
for(i=1; i<=n; ++i){
scanf("%lld", &b[i]);
}
for(i=1; i<=n-1; ++i){
cnt = 0;
if(i != 1) oil -= a[i];
if(oil >= a[i+1] && i != n - 1) continue;//oil表示能走多远
for(j=i+1; j<=n; ++j){
if(b[i] > b[j]) break;
}
for(k=i; k<=j-1; ++k){
cnt += a[i];
}
// printf("%lld %lld ", i, cnt);
cnt -= oil;
new_oil = ceil(1.0 * cnt / m);
oil += new_oil * m;
money += new_oil * b[i];
// printf("%lld %lld\n", new_oil, money);
}
printf("%lld\n", money);
return 0;
}