#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
int n; cin >> n;
const int MX = 2005;
ll dp[MX];
fill(dp, dp+MX, LLONG_MIN);
dp[0] = 0;
ll phoneMax = 0; // 휴대폰 직접 연결 후보 최대 즐거움
for(int i = 0; i < n; i++) {
int a, b; cin >> a >> b;
if(a == 0) {
phoneMax = max(phoneMax, (ll)b);
} else {
for(int j = MX-1; j >= 0; j--) if(dp[j] != LLONG_MIN){
int nj = j + a - 1;
nj = min(nj, MX-1);
dp[nj] = max(dp[nj], dp[j] + b);
}
}
}
ll ans = LLONG_MIN;
for(int i = 0; i < MX; i++) ans = max(ans, dp[i] + phoneMax);
cout << ans << "\n";
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIGxsID0gbG9uZyBsb25nOwoKaW50IG1haW4oKSB7CiAgICBpbnQgbjsgY2luID4+IG47CiAgICBjb25zdCBpbnQgTVggPSAyMDA1OwogICAgbGwgZHBbTVhdOwogICAgZmlsbChkcCwgZHArTVgsIExMT05HX01JTik7CiAgICBkcFswXSA9IDA7CgogICAgbGwgcGhvbmVNYXggPSAwOyAvLyDtnLTrjIDtj7Ag7KeB7KCRIOyXsOqysCDtm4Trs7Qg7LWc64yAIOymkOqxsOybgAoKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBpbnQgYSwgYjsgY2luID4+IGEgPj4gYjsKICAgICAgICBpZihhID09IDApIHsKICAgICAgICAgICAgcGhvbmVNYXggPSBtYXgocGhvbmVNYXgsIChsbCliKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBmb3IoaW50IGogPSBNWC0xOyBqID49IDA7IGotLSkgaWYoZHBbal0gIT0gTExPTkdfTUlOKXsKICAgICAgICAgICAgICAgIGludCBuaiA9IGogKyBhIC0gMTsKICAgICAgICAgICAgICAgIG5qID0gbWluKG5qLCBNWC0xKTsKICAgICAgICAgICAgICAgIGRwW25qXSA9IG1heChkcFtual0sIGRwW2pdICsgYik7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgbGwgYW5zID0gTExPTkdfTUlOOwogICAgZm9yKGludCBpID0gMDsgaSA8IE1YOyBpKyspIGFucyA9IG1heChhbnMsIGRwW2ldICsgcGhvbmVNYXgpOwogICAgY291dCA8PCBhbnMgPDwgIlxuIjsKfQ==