#include using namespace std; int main(){ int64_t N, I; cin >> N >> I; vector dp(N+1, vector(I+1, int64_t(0))); for(int64_t i = 1; i <= N; i++){ int64_t s, a; cin >> s >> a; for(int64_t j = 0; j <= I; j++){ if(j+s <= I) dp[i][j+s] = max(dp[i][j+s], dp[i-1][j] + a); } for(int64_t j = 0; j <= I; j++){ dp[i][j] = max(dp[i][j], dp[i-1][j]); } } cout << *max_element(dp[N].begin(), dp[N].end()) << '\n'; }