#include<bits/stdc++.h>
using namespace std;
typedef long long intt;
const int N = 2e5 + 1;
intt n, m, ks[101], c[101];
intt dp[N];
int main(){
cin >> n >> m;
for(int i = 1; i <= n; ++i)cin >> ks[i];
for(int i = 1; i <= n; ++i)cin >> c[i];
for(int i = 0; i < N; ++i)dp[i] = 1;
for(int i = 1; i <= n; ++i){
for(int j = N - 1; j >= c[i]; --j){
for(int k = 1; k <= ks[i] && k * c[i] <= j; ++k){
dp[j] = max(dp[j], dp[j - k * c[i]] * k);
}
}
}
for(int i = 1; i < N; ++i){
if(dp[i] >= m)return cout << i << '\n', 0;
}
}