#include <bits/stdc++.h>
using namespace std;


int main(){
int n,w;
cin>>n>>w;
vector<vector<int>> dish(n+1, vector<int>(2));

// dp[i][j]
// i番目までの料理を食べるか選択したとき
// 経過時間をjとすると
// 最大満足値はdp[i][j]
vector<vector<int>> dp(n+1, vector<int>(w+1));

for(int i=0;i<n;i++) cin>>dish[i][0]>>dish[i][1];

sort(dish.begin(),dish.end());

int ans=0;
for(int i=0;i<n;i++){
  for(int j=0;j<=w;j++){
    if(dish[i][0]<=j)dp[i+1][j] = max(dp[i][j-dish[i][0]]+dish[i][1],dp[i][j]);
    else dp[i+1][j] = dp[i][j];
    ans = max(ans, dp[i+1][w-1]+dish[i+1][1]);
  }
}




cout<<ans<<endl;
}
