#include<bits/stdc++.h>
using namespace std;
using LL = long long;
struct node{
int s;
int price;
}a[100001];
LL b[100001];
int main(){
LL total=0;
int n,d;
cin>>n>>d;
b[0]=0;
for(int i=1;i<=n-1;i++){
cin>>a[i].s;
b[i]=b[i-1]+a[i].s;
}
for(int i=1;i<=n;i++){
cin>>a[i].price;
}
int book;
int x=0;
int l=0;
int k;
for(int i=1;i<=n;i++){
book=0;
for(int j=i+1;j<=n;j++){
if(a[j].price<a[i].price){
book=1;
x=b[j-1]-b[i-1]-l;
l=0;
if(x%d==0){
k=x/d;
total+=k*a[i].price;
}else{
k=x/d+1;
total+=k*a[i].price;
l=k*d-x;
}
i=j-1;
break;
}
}
if(book==0&&i!=n){
x=b[n-1]-b[i-1]-l;
if(x%d==0){
k=x/d;
total+=k*a[i].price;
}else{
k=x/d+1;
total+=k*a[i].price;
}
break;
}
}
cout<<total;
}