#include<bits/stdc++.h>
using namespace std;
long long n,m,go,kai,jl,now=1;
long long ans;
long long v[100010];
long long a[100010];
bool A;
int main()
{
cin>>n>>m;
for(int i=2;i<=n;i++)
{
cin>>v[i];
}
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
for(int i=2;i<=n;i++)
{
jl+=v[i];
if(a[i]<a[now])
{
jl-=min(kai,jl);
kai-=min(kai,jl);
ans=ans+(jl-jl%m)/m*a[now]+min((long long)1,jl%m)*a[now];
kai=(jl-jl%m)+min((long long)1,jl%m)*m;
kai-=jl;
jl=0;
now=i;
}
}
ans=ans+(jl-jl%m)/m*a[now]+min((long long)1,jl%m)*a[now];
cout<<ans;
return 0;
}
```cpp