#include <bits/stdc++.h>

using namespace std;

int n, t;
int a[3100], b[3100];
int dp[3100][3100][2];

int main(){
    cin >> n >> t;
    for(int i = 0; i < n; i++) cin >> a[i] >> b[i];
    for(int j = 0; j < n; j++){
        for(int i = t - 1; i >= 0; i--){
            if(i + a[j] < t){
                for(int k = 0; k < 2; k++){
                    dp[i + a[j]][j + 1][k] = max(dp[i + a[j]][j + 1][k], dp[i][j][k] + b[j]);
                }
            }
            for(int k = 0; k < 2; k++){
                dp[i + 1][j][k] = max(dp[i + 1][j][k], dp[i][j][k]);
                dp[i][j + 1][k] = max(dp[i][j + 1][k], dp[i][j][k]);
            }
            dp[i][j + 1][1] = max(dp[i][j + 1][1], dp[i][j][0] + b[j]);
            dp[i][j][1] = max(dp[i][j][1], dp[i][j][0]);
        }
    }
    cout << dp[t - 1][n - 1][1] << '\n';
}