#include using namespace std; typedef long long int ll; typedef pair P; typedef vector VI; typedef vector VVI; #define REP(i,n) for(int i=0;i<(n);i++) #define ALL(v) v.begin(),v.end() template bool chmax(T &x, const T &y) {return (x bool chmin(T &x, const T &y) {return (x>y)?(x=y,true):false;}; constexpr ll MOD=998244353; constexpr ll INF=2e18; int main(){ int n, x; cin >> n >> x; VI s(n), a(n); REP(i,n) cin >> s[i] >> a[i]; VI dp(x+1,0); REP(i,n){ for(int j=x;j>=0;j--){ if(j+s[i]<=x) chmax(dp[j+s[i]],dp[j]+a[i]); } } ll ans=0; REP(i,x+1) chmax(ans,dp[i]); cout << ans << endl; return 0; }