#include <bits/stdc++.h>

using namespace std;

int main(){

    int n, t;
    cin >> n >> t;
    vector<pair<int, int>> inp(n);
    for(int i = 0; i < n ; i++)
        cin >> inp[i].first >> inp[i].second;

    sort(inp.begin(), inp.end());
    vector<int> dp(6005, 0);
    dp[0] = 0;
    for(int i = 0; i < n; i++){
        int f = inp[i].first, s = inp[i].second;
        for(int j = t-1; j >= 0; j--){
            if( dp[j] != -1 ){
                dp[j+f] = max(dp[j+f], dp[j]+s);
            }
        }
    }

    int ans = 0;
    for(int i = 0; i < 6005; i++)
        ans = max(ans, dp[i]);

    cout << ans << endl;
    return 0;
}