//O(n)tan xin
#include <iostream>
#include <cstdio>
#include <vector>
#include <cmath>
using namespace std;
int main(){
// freopen("road.in","r",stdin);
// freopen("road.out","w",stdout);
int n,d;
cin >> n >> d;
vector<int> v(n-1);
for (int i=0;i<n-1;++i){
cin >> v[i];
}
vector<int> a(n);
for (int i=0;i<n;++i){
cin >> a[i];
}
long long ans=0;
int mn=100000000;
long long sm=0;//pao le duo yuan
long double temp=0;//yu xia duo shao sheng
for (int i=0;i<n-1;++i){
if (a[i]<mn){//you zui xiao de
sm-=d*temp;
long long t=ceil(1.0*sm/d);//duo shao sheng
temp=t-1.0*sm/d;//hai sheng duo shao
ans+=t*mn;//da an jia qi lai
sm=0;
mn=a[i];
}
sm+=v[i];
}
sm-=d*temp;
long long res=ans+ceil(1.0*sm/d)*mn;
cout<<res<<endl;
// fclose(stdin);
// fclose(stdout);
return 0;
}
民间95pts