#include #define rep(i,n) for(int i = 0; i < (n); i++) using namespace std; typedef long long ll; int main(){ cin.tie(0); ios::sync_with_stdio(0); // sum(s) <= I // max sum(a) int N,I; cin >> N >> I; vector dp(I + 1, 0); rep(_,N) { int s,a; cin >> s >> a; vector nt = dp; for(int i = 0; i <= I; i++) if(i + s <= I) nt[i + s] = max(nt[i + s], dp[i] + a); swap(dp, nt); } cout << *max_element(dp.begin(), dp.end()) << endl; }