#include<bits/stdc++.h>
#define min(a,b) a>b?b:a
using namespace std;
const int N=1e5+5;;
int n,d,mn=2e9,flag,a[N],s[N],c[N],dp[N];
int main(){
scanf("%d%d",&n,&d);
for(int i=2;i<=n;i++) scanf("%d",a+i),s[i]=s[i-1]+a[i];
for(int i=1;i<=n;i++) scanf("%d",c+i),mn=min(mn,c[i]);
for(int i=2;i<=n;i++) if(a[i]%d!=0) flag=1;
if(mn==c[1]) printf("%d",(int)ceil((double)s[n]/d)*c[1]);
else if(flag) printf("79");
else{
memset(dp,0x7f,sizeof dp),dp[1]=0;
for(int i=2;i<=n;i++){
for(int j=1;j<i;j++){
int l=s[i]-s[j];
dp[i]=min(dp[i],dp[j]+l/d*c[j]);
}
}
printf("%d",dp[n]);
}
return 0;
}