#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==
MTUKMSAtNDAzNAoxIDM0MDYKMCA2MDYyCjQgLTY4MjQKMCA5Nzk4CjAgNDUwMAowIC0xOTE1CjEgMjEzNwowIDk3ODYKMCA3MzMwCjAgLTkzNjUKMiAyNzMwCjAgLTU3OTcKMCA2MTI5CjAgODkyNQ==
15
1 -4034
1 3406
0 6062
4 -6824
0 9798
0 4500
0 -1915
1 2137
0 9786
0 7330
0 -9365
2 2730
0 -5797
0 6129
0 8925