#include<bits/stdc++.h>
using namespace std;
long long sum[100010],jia[100010];
long long read()
{
long long x=0;
char c=getchar();
while(c>'9'||c<'0') c=getchar();
while(c>='0'&&c<='9')
{
x=(x<<3)+(x<<1)+(c^'0');
c=getchar();
}
return x;
}
int main()
{
int n;
long long d;
n=read();d=read();
sum[1]=0;
for(int i=2;i<=n;i++)
{
sum[i]=read();
sum[i]+=sum[i-1];
}
for(int i=1;i<=n;i++)
jia[i]=read();
int s=1,f;
long long ans=0,ti=0;
f=s+1;
while(s<=n)
{
while(jia[s]<jia[f]&&f<=n) f++;
if(f>=n)
{
ans+=(sum[n]-sum[s]-ti)/d*jia[s];
ti=(sum[n]-sum[s]-ti)%d;
if(ti!=0) ans+=jia[s];
printf("%lld",ans);
return 0;
}
ans+=(sum[f]-sum[s]-ti)/d*jia[s];
ti=(sum[f]-sum[s]-ti)%d;
if(ti!=0)
{
ti=d-ti;
ans+=jia[s];
}
s=f;
f++;
}
return 0;
}