#include #define rep(i, n) for (int i = 0; i < (n); ++i) using namespace std; inline void chmax(int& x, int y) { if (x < y) x = y; } int main() { int n, I; cin >> n >> I; vector s(n), a(n); rep(i, n) cin >> s[i] >> a[i]; vector dp(I+1); rep(i, n) { for (int j = I-s[i]; j >= 0; --j) { chmax(dp[j+s[i]], dp[j]+a[i]); } } cout << dp[I] << '\n'; return 0; }