#include<bits/stdc++.h>
using namespace std;
int v[100001];
long long ans;
int n,d;
int a[100001];
long long sumv[100001];
int find_lower_price(int st)
{
for(int i=st+1;i<=n;i++)
{
if(a[i]<a[st])
{
return i;
}
}
return n;
}
int main()
{
scanf("%d%d",&n,&d);
for(int i=1;i<=n-1;i++)
{
scanf("%d",&v[i]);
sumv[i]=sumv[i-1]+v[i];
}
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
int havenv=0;
for(int i=1;i<n;)
{
int find_out=find_lower_price(i);
int totv=sumv[find_out-1]-sumv[i-1];
int final_oil=(((totv-havenv)%d==0)?(totv-havenv)/d:((totv-havenv)/d+1));
ans+=final_oil*a[i];
havenv=final_oil*d-(totv-havenv);
i=find_out;
}
printf("%d\n",ans);
return 0;
}