#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<ll,ll> P;
const ll mod=1e9+7;
ll dp[3005][3005]={0};
int main(){
  ll n,t;
  cin>>n>>t;
  vector<P> vec;
  for(int i=0;i<n;i++){
    ll a,b;
    cin>>a>>b;
    vec.push_back(P(a,b));
  }
  sort(vec.begin(),vec.end());
  for(int i=0;i<t;i++){
    for(int j=0;j<n;j++){
      dp[i][j+1]=max(dp[i][j],dp[i][j+1]);
      ll idx=min(t,i+vec[j].first);
      dp[idx][j+1]=max(dp[idx][j+1],dp[i][j]+vec[j].second);
    }
  }
  ll ans=0;
  for(int i=0;i<=t;i++){
    for(int j=0;j<=n;j++) ans=max(ans,dp[i][j]);
  }
  cout<<ans<<endl;
}
