#include #include #include using namespace std; using ll = long long; using P = pair; void chmax(ll& a, ll b){a=max(a, b);} int main(void){ int n, W; cin >> n >> W; vector v(n), w(n); for(auto&x:v) cin >> x; for(auto&x:w) cin >> x; vector dp(n+1, vector(W+1, -1e18)); dp[n][0]=0; for(int i=n-1; i>=0; i--){ for(int j=0; j<=W; j++){ chmax(dp[i][j], dp[i+1][j]); if(j>=w[i]&&dp[i+1][j-w[i]]>=0){ chmax(dp[i][j], dp[i+1][j-w[i]]+v[i]); } } } ll mv=dp[0][W], nw=W; vector ans; for(int i=0; i