#include <bits/stdc++.h>
using namespace std;
struct piatto{
int s;
int e;
int w;
};
int main(){
int N;
cin >> N;
vector<piatto>V(N+1);
V[0]={-1, -1, 0};
for(int i = 1; i <= N; i++){
int S, W, D;
cin >> S >> W >> D;
V[i]={S, D + S, W};
}
sort(V.begin(), V.end(), [](const piatto a, const piatto b){
return a.e < b.e;
});
vector<int>DP(N + 1, 0);
for(int i = 1; i <= N; i++){
auto it = upper_bound(V.begin(), V.begin() + i, V[i].s, [](const int v, const piatto a){
return a.e > v;
});
int idx = it - V.begin();
DP[i] = max(DP[i - 1], DP[idx-1] + V[i].w);
}
int ret = *max_element(DP.begin(), DP.end());
cout << ret << endl;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CgkJdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCQlzdHJ1Y3QgcGlhdHRvewoJCQlpbnQgczsKCQkJaW50IGU7CgkJCWludCB3OwoJfTsKCQlpbnQgbWFpbigpewoJCQlpbnQgTjsKCQkJY2luID4+IE47CgkJCXZlY3RvcjxwaWF0dG8+VihOKzEpOwoJCQlWWzBdPXstMSwgLTEsIDB9OwoJCQlmb3IoaW50IGkgPSAxOyBpIDw9IE47IGkrKyl7CgkJCQlpbnQgUywgVywgRDsKCQkJCWNpbiA+PiBTID4+IFcgPj4gRDsKCQkJCVZbaV09e1MsIEQgKyBTLCBXfTsKCQkJfQoJCQlzb3J0KFYuYmVnaW4oKSwgVi5lbmQoKSwgW10oY29uc3QgcGlhdHRvIGEsIGNvbnN0IHBpYXR0byBiKXsKCQkJCXJldHVybiBhLmUgPCBiLmU7CgkJCX0pOwoJCQl2ZWN0b3I8aW50PkRQKE4gKyAxLCAwKTsKCQkJZm9yKGludCBpID0gMTsgaSA8PSBOOyBpKyspewoJCQkJYXV0byBpdCA9IHVwcGVyX2JvdW5kKFYuYmVnaW4oKSwgVi5iZWdpbigpICsgaSwgVltpXS5zLCBbXShjb25zdCBpbnQgdiwgY29uc3QgIHBpYXR0byBhKXsKCQkJCQlyZXR1cm4gYS5lID4gdjsKCQkJCX0pOwoJCQlpbnQgaWR4ID0gaXQgLSBWLmJlZ2luKCk7CQoJCSAgICAgICAgRFBbaV0gPSBtYXgoRFBbaSAtIDFdLCBEUFtpZHgtMV0gKyBWW2ldLncpOwkJCgkJCQoJCQkJCgkJCX0KCQkJaW50IHJldCA9ICptYXhfZWxlbWVudChEUC5iZWdpbigpLCBEUC5lbmQoKSk7CgkJCWNvdXQgPDwgcmV0IDw8IGVuZGw7CgkJfQo=