#include <bits/stdc++.h>
using namespace std;
struct Work {
int S, E, P;
};
Work work[10001];
int M, hari_max = 0, memo[10001][10001];
int f(int N, int H){
if (memo[N][H] != 0){
return memo[N][H];
}
if (N < 1 || H < 1){
return 0;
} else {
if (work[N].E <= H){
int ambil = work[N].P + f(N-1, work[N].S - 1);
int tidak_ambil = f(N-1, H);
memo[N][H] = max(ambil, tidak_ambil);
return memo[N][H];
} else {
memo[N][H] = f(N-1, H);
return memo[N][H];
}
}
}
int main() {
memset(memo, 0, sizeof(memo));
cin >> M;
for (int i = 1; i <= M; i++){
cin >> work[i].S >> work[i].E >> work[i].P;
hari_max = max(hari_max, work[i].E);
}
for (int i = 1; i < M; i++){
for (int j = i+1; j <= M; j++){
if (work[i].E > work[j].E){
swap(work[i], work[j]);
}
}
}
cout << f(M, hari_max) << endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3QgV29yayB7CglpbnQgUywgRSwgUDsKfTsKCldvcmsgd29ya1sxMDAwMV07CmludCBNLCBoYXJpX21heCA9IDAsIG1lbW9bMTAwMDFdWzEwMDAxXTsKCmludCBmKGludCBOLCBpbnQgSCl7CglpZiAobWVtb1tOXVtIXSAhPSAwKXsKCQlyZXR1cm4gbWVtb1tOXVtIXTsKCX0KCWlmIChOIDwgMSB8fCBIIDwgMSl7CgkJcmV0dXJuIDA7Cgl9IGVsc2UgewoJCWlmICh3b3JrW05dLkUgPD0gSCl7CgkJCWludCBhbWJpbCA9IHdvcmtbTl0uUCArIGYoTi0xLCB3b3JrW05dLlMgLSAxKTsKCQkJaW50IHRpZGFrX2FtYmlsID0gZihOLTEsIEgpOwoJCQltZW1vW05dW0hdID0gbWF4KGFtYmlsLCB0aWRha19hbWJpbCk7CgkJCXJldHVybiBtZW1vW05dW0hdOwoJCX0gZWxzZSB7CgkJCW1lbW9bTl1bSF0gPSBmKE4tMSwgSCk7CgkJCXJldHVybiBtZW1vW05dW0hdOwoJCX0KCX0KfQoKaW50IG1haW4oKSB7CgltZW1zZXQobWVtbywgMCwgc2l6ZW9mKG1lbW8pKTsKCWNpbiA+PiBNOwoJZm9yIChpbnQgaSA9IDE7IGkgPD0gTTsgaSsrKXsKCQljaW4gPj4gd29ya1tpXS5TID4+IHdvcmtbaV0uRSA+PiB3b3JrW2ldLlA7CgkJaGFyaV9tYXggPSBtYXgoaGFyaV9tYXgsIHdvcmtbaV0uRSk7Cgl9CgkKCWZvciAoaW50IGkgPSAxOyBpIDwgTTsgaSsrKXsKCQlmb3IgKGludCBqID0gaSsxOyBqIDw9IE07IGorKyl7CgkJCWlmICh3b3JrW2ldLkUgPiB3b3JrW2pdLkUpewoJCQkJc3dhcCh3b3JrW2ldLCB3b3JrW2pdKTsKCQkJfQoJCX0KCX0KCQoJY291dCA8PCBmKE0sIGhhcmlfbWF4KSA8PCBlbmRsOwoJCglyZXR1cm4gMDsKfQ==