rt
#include <bits/stdc++.h>
#define int long long
#define fro for
using namespace std;
int a[114514],v[114514],minn=114514,pos=0;
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
//freopen (".in","r",stdin);
//freopen (".out","w",stdout);
int n,d,sum=0,now=0;
cin>>n>>d;
for (int i=2;i<=n;i++)
{
int x;
cin>>x;
v[i]=v[i-1]+x;
}
for (int i=1;i<=n;i++)
{
cin>>a[i];
if (i==n)
a[i]=-100;
if (minn>a[i])
{
minn=a[i];
int oil=ceil(1.0*(v[i]-v[pos]-now)/d);
if (oil*d-v[i]+v[pos]>0)
now+=oil*d-v[i]+v[pos];
sum+=oil*a[pos];
pos=i;
}
}
cout<<sum;
return 0;
}