#include<bits/stdc++.h>
using namespace std;
int n,m,Qb;
int k[10010],c[10010],dp[10010];
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];
Qb+=c[i]*k[i];
}
dp[0]=1;
for(int i=1;i<=n;i++) {
for(int j=Qb;j>=0;j--) {
for(int l=0;l<=k[i];l++) {
if(j>=l*c[i]) dp[j]=max(dp[j],dp[j-l*c[i]]*l);
}
}
}
int ans=0;
while(ans<=Qb && dp[ans]<=m) ans++;
cout<<ans;
return 0;
}