#include <bits/stdc++.h>
using namespace std;
#define int long long
#define sz(a) (int)a.size()
#define mask(i) ((1LL) << (i))
#define bit(x, i) ((x) >> (i) & (1LL))
#define all(x) (x).begin(),(x).end()
#define debug(...) cerr << "#" << __LINE__ << ":[" << #__VA_ARGS__ << "] = [" ,DBG(__VA_ARGS__)
string to_string(const string& s) { return '"' + s + '"'; }
void DBG() { cerr << "]" << endl; }
template<class H, class... T> void DBG(H h, T... t) {
cerr << to_string(h); if(sizeof...(t)) cerr << ", "; DBG(t...);
}
template <class T>
inline bool minimize(T &a, const T &b) { return (a > b ? (a = b, 1) : 0); }
template <class T>
inline bool maximize(T &a, const T &b) { return (a < b ? (a = b, 1) : 0); }
void file() {
#define TASK "TASK"
// freopen(TASK".inp", "r", stdin);
// freopen(TASK".out", "w", stdout);
}
const int INF = 3e18 + 5062007;
const int mod = 1e9 + 7;
const int nmax = 2e5 + 5;
struct info {
int a, b, c;
};
int n, dp[nmax];
info a[nmax];
vector <int> d;
template <class T = int> struct Segtree {
T st[nmax << 2], lz[nmax << 2];
void pushUp(int id) {
st[id] = max(st[id * 2], st[id * 2 + 1]);
}
void update(int id, int l, int r, int pos, T val) {
if (pos < l || pos > r) return;
if (l == r) {
st[id] = max(st[id], val);
return;
}
int mid = l + r >> 1;
update(id * 2, l, mid, pos, val);
update(id * 2 + 1, mid + 1, r, pos, val);
pushUp(id);
}
void add(int u, int v) {
st[u] += lz[v];
lz[u] += lz[v];
}
void pushDown(int id) {
add(id, id * 2);
add(id, id * 2 + 1);
lz[id] = 0;
}
void update(int id, int l, int r, int u, int v, T val) {
if (v < l || u > r) return;
if (u <= l && v >= r) {
return;
}
int mid = l + r >> 1;
update(id * 2, l, mid, u, v, val);
update(id * 2 + 1, mid + 1, r, u, v, val);
pushUp(id);
}
T query(int id, int l, int r, int u, int v) {
if (v < l || u > r) return 0;
if (u <= l && v >= r) return st[id];
int mid = l + r >> 1;
T L = query(id * 2, l, mid, u, v);
T R = query(id * 2 + 1, mid + 1, r, u, v);
return max(L, R);
}
};
Segtree A;
void solve() {
cin >> n;
for (int i = 1; i <= n; ++i) {
cin >> a[i].a >> a[i].b >> a[i].c;
d.emplace_back(a[i].a);
d.emplace_back(a[i].b);
}
sort(all(d));
for (int i = 1; i <= n; ++i) {
a[i].a = lower_bound(all(d), a[i].a) - d.begin();
a[i].b = lower_bound(all(d), a[i].b) - d.begin();
a[i].a++, a[i].b++;
}
sort(a + 1, a + 1 + n, [](const info &x, const info &y) {
return x.a < y.a || (x.a == y.a && x.b < y.b);
});
for (int i = 1; i <= n; ++i) {
dp[i] = a[i].c;
dp[i] = max(dp[i], A.query(1, 1, 2 * n, 1, a[i].a) + a[i].c);
A.update(1, 1, 2 * n, a[i].b, dp[i]);
}
int ans = 0;
for (int i = 1; i <= n; ++i)
ans = max(ans, dp[i]);
cout << ans;
}
signed main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);cout.tie(nullptr);
file();
int tt = 1;
// cin >> tt;
// process();
while(tt--) {
solve();
// brute();
}
cerr << "\nTime elapsed: " << 1000 * clock() / CLOCKS_PER_SEC << "ms\n";
return 0;
}
//567
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIGludCBsb25nIGxvbmcKI2RlZmluZSBzeihhKSAoaW50KWEuc2l6ZSgpCiNkZWZpbmUgbWFzayhpKSAoKDFMTCkgPDwgKGkpKQojZGVmaW5lIGJpdCh4LCBpKSAoKHgpID4+IChpKSAmICgxTEwpKQojZGVmaW5lIGFsbCh4KSAoeCkuYmVnaW4oKSwoeCkuZW5kKCkKI2RlZmluZSBkZWJ1ZyguLi4pIGNlcnIgPDwgIiMiIDw8IF9fTElORV9fIDw8ICI6WyIgPDwgI19fVkFfQVJHU19fIDw8ICJdID0gWyIgLERCRyhfX1ZBX0FSR1NfXykKCnN0cmluZyB0b19zdHJpbmcoY29uc3Qgc3RyaW5nJiBzKSB7IHJldHVybiAnIicgKyBzICsgJyInOyB9CnZvaWQgREJHKCkgeyBjZXJyIDw8ICJdIiA8PCBlbmRsOyB9CnRlbXBsYXRlPGNsYXNzIEgsIGNsYXNzLi4uIFQ+IHZvaWQgREJHKEggaCwgVC4uLiB0KSB7CiAgICBjZXJyIDw8IHRvX3N0cmluZyhoKTsgaWYoc2l6ZW9mLi4uKHQpKSBjZXJyIDw8ICIsICI7IERCRyh0Li4uKTsKfQoKdGVtcGxhdGUgPGNsYXNzIFQ+IAppbmxpbmUgYm9vbCBtaW5pbWl6ZShUICZhLCBjb25zdCBUICZiKSB7IHJldHVybiAoYSA+IGIgPyAoYSA9IGIsIDEpIDogMCk7IH0KdGVtcGxhdGUgPGNsYXNzIFQ+IAppbmxpbmUgYm9vbCBtYXhpbWl6ZShUICZhLCBjb25zdCBUICZiKSB7IHJldHVybiAoYSA8IGIgPyAoYSA9IGIsIDEpIDogMCk7IH0KCnZvaWQgZmlsZSgpIHsKICAgICNkZWZpbmUgVEFTSyAiVEFTSyIKICAgIC8vIGZyZW9wZW4oVEFTSyIuaW5wIiwgInIiLCBzdGRpbik7CiAgICAvLyBmcmVvcGVuKFRBU0siLm91dCIsICJ3Iiwgc3Rkb3V0KTsKfQoKY29uc3QgaW50IElORiA9IDNlMTggKyA1MDYyMDA3Owpjb25zdCBpbnQgbW9kID0gMWU5ICsgNzsKY29uc3QgaW50IG5tYXggPSAyZTUgKyA1OwoKc3RydWN0IGluZm8gewogICAgaW50IGEsIGIsIGM7Cn07CgppbnQgbiwgZHBbbm1heF07CmluZm8gYVtubWF4XTsKdmVjdG9yIDxpbnQ+IGQ7Cgp0ZW1wbGF0ZSA8Y2xhc3MgVCA9IGludD4gc3RydWN0IFNlZ3RyZWUgewogICAgVCBzdFtubWF4IDw8IDJdLCBseltubWF4IDw8IDJdOwogICAgdm9pZCBwdXNoVXAoaW50IGlkKSB7CiAgICAgICAgc3RbaWRdID0gbWF4KHN0W2lkICogMl0sIHN0W2lkICogMiArIDFdKTsKICAgIH0KCiAgICB2b2lkIHVwZGF0ZShpbnQgaWQsIGludCBsLCBpbnQgciwgaW50IHBvcywgVCB2YWwpIHsKICAgICAgICBpZiAocG9zIDwgbCB8fCBwb3MgPiByKSByZXR1cm47CiAgICAgICAgaWYgKGwgPT0gcikgewogICAgICAgICAgICBzdFtpZF0gPSBtYXgoc3RbaWRdLCB2YWwpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGludCBtaWQgPSBsICsgciA+PiAxOwogICAgICAgIHVwZGF0ZShpZCAqIDIsIGwsIG1pZCwgcG9zLCB2YWwpOwogICAgICAgIHVwZGF0ZShpZCAqIDIgKyAxLCBtaWQgKyAxLCByLCBwb3MsIHZhbCk7CiAgICAgICAgcHVzaFVwKGlkKTsKICAgIH0KICAgIHZvaWQgYWRkKGludCB1LCBpbnQgdikgewogICAgICAgIHN0W3VdICs9IGx6W3ZdOwogICAgICAgIGx6W3VdICs9IGx6W3ZdOwogICAgfQogICAgdm9pZCBwdXNoRG93bihpbnQgaWQpIHsKICAgICAgICBhZGQoaWQsIGlkICogMik7CiAgICAgICAgYWRkKGlkLCBpZCAqIDIgKyAxKTsKICAgICAgICBseltpZF0gPSAwOwogICAgfQogICAgdm9pZCB1cGRhdGUoaW50IGlkLCBpbnQgbCwgaW50IHIsIGludCB1LCBpbnQgdiwgVCB2YWwpIHsKICAgICAgICBpZiAodiA8IGwgfHwgdSA+IHIpIHJldHVybjsKICAgICAgICBpZiAodSA8PSBsICYmIHYgPj0gcikgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGludCBtaWQgPSBsICsgciA+PiAxOwogICAgICAgIHVwZGF0ZShpZCAqIDIsIGwsIG1pZCwgdSwgdiwgdmFsKTsKICAgICAgICB1cGRhdGUoaWQgKiAyICsgMSwgbWlkICsgMSwgciwgdSwgdiwgdmFsKTsKICAgICAgICBwdXNoVXAoaWQpOwogICAgfQogICAgVCBxdWVyeShpbnQgaWQsIGludCBsLCBpbnQgciwgaW50IHUsIGludCB2KSB7CiAgICAgICAgaWYgKHYgPCBsIHx8IHUgPiByKSByZXR1cm4gMDsKICAgICAgICBpZiAodSA8PSBsICYmIHYgPj0gcikgcmV0dXJuIHN0W2lkXTsKICAgICAgICBpbnQgbWlkID0gbCArIHIgPj4gMTsKICAgICAgICBUIEwgPSBxdWVyeShpZCAqIDIsIGwsIG1pZCwgdSwgdik7CiAgICAgICAgVCBSID0gcXVlcnkoaWQgKiAyICsgMSwgbWlkICsgMSwgciwgdSwgdik7CiAgICAgICAgcmV0dXJuIG1heChMLCBSKTsKICAgIH0KfTsKU2VndHJlZSBBOwoKdm9pZCBzb2x2ZSgpIHsKICAgIGNpbiA+PiBuOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgKytpKSB7CiAgICAgICAgY2luID4+IGFbaV0uYSA+PiBhW2ldLmIgPj4gYVtpXS5jOwogICAgICAgIGQuZW1wbGFjZV9iYWNrKGFbaV0uYSk7CiAgICAgICAgZC5lbXBsYWNlX2JhY2soYVtpXS5iKTsKICAgIH0KCiAgICBzb3J0KGFsbChkKSk7CgogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgKytpKSB7CiAgICAgICAgYVtpXS5hID0gbG93ZXJfYm91bmQoYWxsKGQpLCBhW2ldLmEpIC0gZC5iZWdpbigpOwogICAgICAgIGFbaV0uYiA9IGxvd2VyX2JvdW5kKGFsbChkKSwgYVtpXS5iKSAtIGQuYmVnaW4oKTsKICAgICAgICBhW2ldLmErKywgYVtpXS5iKys7CiAgICB9CgogICAgc29ydChhICsgMSwgYSArIDEgKyBuLCBbXShjb25zdCBpbmZvICZ4LCBjb25zdCBpbmZvICZ5KSB7CiAgICAgICAgcmV0dXJuIHguYSA8IHkuYSB8fCAoeC5hID09IHkuYSAmJiB4LmIgPCB5LmIpOwogICAgfSk7CgogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgKytpKSB7CiAgICAgICAgZHBbaV0gPSBhW2ldLmM7CiAgICAgICAgZHBbaV0gPSBtYXgoZHBbaV0sIEEucXVlcnkoMSwgMSwgMiAqIG4sIDEsIGFbaV0uYSkgKyBhW2ldLmMpOwogICAgICAgIEEudXBkYXRlKDEsIDEsIDIgKiBuLCBhW2ldLmIsIGRwW2ldKTsKICAgIH0gICAgCgogICAgaW50IGFucyA9IDA7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyArK2kpIAogICAgICAgIGFucyA9IG1heChhbnMsIGRwW2ldKTsKICAgIGNvdXQgPDwgYW5zOwp9CgpzaWduZWQgbWFpbigpIHsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShudWxscHRyKTtjb3V0LnRpZShudWxscHRyKTsKICAgIGZpbGUoKTsKICAgIGludCB0dCA9IDE7CiAgICAvLyBjaW4gPj4gdHQ7CgogICAgLy8gcHJvY2VzcygpOwogICAgd2hpbGUodHQtLSkgIHsKICAgICAgICBzb2x2ZSgpOwogICAgICAgIC8vIGJydXRlKCk7CiAgICB9CiAgICBjZXJyIDw8ICJcblRpbWUgZWxhcHNlZDogIiA8PCAxMDAwICogY2xvY2soKSAvIENMT0NLU19QRVJfU0VDIDw8ICJtc1xuIjsKICAgIHJldHVybiAwOwp9Ci8vNTY3Cg==