#include using namespace std; int main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); vector dp(1001001); int N,W; cin >> N >> W; int bv = 0,bw = 1; while(N--){ int v,w; cin >> v >> w; if(bv*w < v*bw) bv = v,bw = w; for(int i=w; i<1001001; i++) dp.at(i) = max(dp.at(i),dp.at(i-w)+v); } if(W < 1001001) cout << dp.at(W) << endl; else{ long long over = (W-1001001)/bw+1; long long answer = over*bv; W -= over*bw; answer += dp.at(W); cout << answer << endl; } }