#include <iostream>
using namespace std;
typedef long long ll;
ll n,d,oil[100005],dis[100005];
ll cost,sum;
int main (){
cin >> n >> d;
for (int i=1;i<n;i++){
cin >> dis[i];
}
for (int i=1;i<=n;i++){
cin >> oil[i];
}
for (int i=1;i<n;i++){
if (oil[i]>=oil[i+1]){
if (sum>=dis[i]){
sum-=dis[i];
i++;
continue;
}else {
int tmp=0;
int x=dis[i]-sum;
sum=0;
if (x%d){
tmp=x/d+1;
}else{
tmp=x/d;
}
cost+=tmp*oil[i];
sum+=tmp*d;
sum-=x;
}
}else if (oil[i]<oil[i+1]){
int tmp=0,sumDis=0;
int j=i+1;
for (;j<=n;j++){
sumDis+=dis[j];
if (oil[j]<=oil[i]){
break;
}
}
if (sum>=sumDis){
sum-=sumDis;
i=j;
continue;
}else{
int x=sumDis-sum;
sum=0;
if (x%d){
tmp=x/d+1;
}else{
tmp=x/d;
}
cost+=tmp*oil[i];
sum+=tmp*d;
sum-=x;
i=j;
}
}
}
cout << cost;
return 0;
}