#include<bits/stdc++.h>usingnamespace std;intmain(){int m, n;
cin >> m >> n;
vector<int>weights(m,0);
vector<int>values(m,0);for(int i =0; i < m; i++){
cin >> weights[i];}for(int i =0; i < m; i++){
cin >> values[i];}
vector<int>dp(n +1,0);for(int i =0; i < m; i++){for(int j = n; j >0; j--){if(j >= weights[i]){
dp[j]=max(dp[j], dp[j - weights[i]]+ values[i]);}}}
cout << dp[n];return0;}