#include<bits/stdc++.h>
using namespace std;
long long n,m,q;
long long k[100005],c[100005],dp[100005];
int main(){
cin>>n>>m;
for (int i=1;i<=n;i++) cin>>k[i];
for (int i=1;i<=n;i++) {
cin>>c[i];
q+=c[i]*k[i];
}
dp[0]=1;
for (int i=1;i<=n;i++) {
for (int j=q;j>=1;j--) {
for (int x=1;x<=k[i];x++) {
if(j>=c[i]*x) dp[j]=max(dp[j],dp[j-c[i]*x]*x);
}
}
}
for (long long j=1;j<=q;j++) {
if (dp[j]>=m) {
cout<<j;
return 0;
}
}
return 0;
}