#include<bits/stdc++.h>
using namespace std;
const int N = 1e5+50;
int n,d,ans;
int v[N],a[N],zhui[N];
int sqc(int a,int b){//向上取整的除法
if(a%b==0){
return a/b;
}else{
return a/b+1;
}
}
int main(){
//输入流
cin>>n>>d;
for(int i=1;i<n;i++) cin>>v[i];
for(int i=1;i<=n;i++) cin>>a[i];
//计算买油地点
vector<int> vec;
vec.push_back(1);
for(int i=1;i<=n;i++){
int lin = a[i];
for(int j=i;j<n;j++){
if(lin>a[j]){
i=j;
vec.push_back(j);
break;
}
}
}
vec.push_back(n);
int v_s = vec.size();
// cout<<"v_s: "<<v_s<<endl;
//路程前缀和
for(int i=2;i<=n;i++){
zhui[i] = zhui[i-1]+v[i-1];
}
//买多的油跑的路程
int sheng=0;
for(int i=0;i<v_s-1;i++){ //计算答案
int ju = zhui[vec[i+1]]-zhui[vec[i]]-sheng;
sheng = ju%d;
ans+=sqc(ju,d)*a[vec[i]];
// cerr<<"ans: "<<ans<<" "<<ju<<" "<<zhui[vec[i+1]]<<" "<<zhui[vec[i]]<<" "<<" "<<sheng<<" "<<endl;
}
//输出结果
cout<<ans;
return 0;
}
/*
4 6279
90560 55497 63624
171 103 126 112
4522
*/