#include <bits/stdc++.h>
using namespace std;
int n,m,w,ans;
int k[1000001],c[1000001];
void in(){
cin>>n>>m;
for(int i=1;i<=n;i++)cin>>k[i];
for(int i=1;i<=n;i++)cin>>c[i];
for(int i=1;i<=n;i++)w+=k[i]*c[i];
}
int f[1000001];
void solve(){
f[0]=1;
for(int i=1;i<=n;i++){
for(int j=w;j>=0;j--){
for(int l=0;l<=k[i]&&c[i]*l<=j;l++){
f[j]=max(f[j],f[j-c[i]*l]*l);
}
}
}
for(int i=1;;i++){
if(f[i]>=m){
cout<<i;
return;
}
}
}
int main(){
in();
solve();
return 0;
}```