#include<bits/stdc++.h>
using namespace std;
const int N=100000;
int a[N],b[N];
int p,q;
int cnt;
long long pricecnt;
int find(int k){
for(int i=k;i<=p;i++)
if(b[i]<b[k])
return i;
return p;
}
int price(int s,int t){
int length=0;
for(int i=s;i<t;i++)
length+=a[i];
int o=((length-cnt)/q);
if(q*o+cnt<length)
o++;
cnt=cnt+o*q-length;
return o*b[s];
}
void ann(int n){
if(n==p)
return;
pricecnt+=price(n,find(n));
ann(find(n));
}
int main(){
cin>>p>>q;
for(int i=1;i<p;i++)
cin>>a[i];
for(int i=1;i<=p;i++)
cin>>b[i];
ann(1);
cout<<pricecnt;
return 0;
}