#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();
cout << "\t " << V[i].s << " " << V[i].e << " " << V[i].w <<"idx: "<<idx <<endl;
DP[i] = max(DP[i - 1], DP[idx-1] + V[i].w);
cout << DP[idx-1] <<" "<<DP[i-1]<< endl;
}
int ret = *max_element(DP.begin(), DP.end());
cout << ret << endl;
}
ICNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgoJCXVzaW5nIG5hbWVzcGFjZSBzdGQ7CgkJc3RydWN0IHBpYXR0b3sKCQkJaW50IHM7CgkJCWludCBlOwoJCQlpbnQgdzsKCX07CgkJaW50IG1haW4oKXsKCQkJaW50IE47CgkJCWNpbiA+PiBOOwoJCQl2ZWN0b3I8cGlhdHRvPlYoTisxKTsKCQkJVlswXT17LTEsIC0xLCAwfTsKCQkJZm9yKGludCBpID0gMTsgaSA8PSBOOyBpKyspewoJCQkJaW50IFMsIFcsIEQ7CgkJCQljaW4gPj4gUyA+PiBXID4+IEQ7CgkJCQlWW2ldPXtTLCBEICsgUywgV307CgkJCX0KCQkJc29ydChWLmJlZ2luKCksIFYuZW5kKCksIFtdKGNvbnN0IHBpYXR0byBhLCBjb25zdCBwaWF0dG8gYil7CgkJCQlyZXR1cm4gYS5lIDwgYi5lOwoJCQl9KTsKCQkJdmVjdG9yPGludD5EUChOICsgMSwgMCk7CgkJCWZvcihpbnQgaSA9IDE7IGkgPD0gTjsgaSsrKXsKCQkJCWF1dG8gaXQgPSB1cHBlcl9ib3VuZChWLmJlZ2luKCksIFYuYmVnaW4oKSArIGksIFZbaV0ucywgW10oY29uc3QgaW50IHYsIGNvbnN0ICBwaWF0dG8gYSl7CgkJCQkJcmV0dXJuIGEuZSA+IHY7CgkJCQl9KTsKCQkJaW50IGlkeCA9IGl0IC0gVi5iZWdpbigpOwoJCQkKCQkJY291dCA8PCAiXHQgIiA8PCBWW2ldLnMgPDwgIiAiIDw8IFZbaV0uZSA8PCAiICIgPDwgVltpXS53IDw8ImlkeDogIjw8aWR4IDw8ZW5kbDsKCQkgICAgICAgIERQW2ldID0gbWF4KERQW2kgLSAxXSwgRFBbaWR4LTFdICsgVltpXS53KTsJCQoJCQkKCQkJCWNvdXQgPDwgRFBbaWR4LTFdIDw8IiAiPDxEUFtpLTFdPDwgZW5kbDsKCQkJfQoJCQlpbnQgcmV0ID0gKm1heF9lbGVtZW50KERQLmJlZ2luKCksIERQLmVuZCgpKTsKCQkJY291dCA8PCByZXQgPDwgZW5kbDsKCQl9Cg==