// Written by Jason Helman

#include <bits/stdc++.h>
using namespace std;
using ll = long long int;
using vl = vector<ll>;
using vi = vector<int>;
using vvi = vector<vi>;

int main()
{
    int n; // project count
    cin >> n;
    vvi ps(n+1, {-1, -1, 0}); // projects (start all with {end=-1, start=-1, $=0}; ps[0] is for the edge case)
    for(int i = 1; i <= n; i++)
        cin >> ps[i][1] >> ps[i][0] >> ps[i][2];
    sort(ps.begin(), ps.end());

    vl mem(n+1);
    for(int i = 1; i <= n; i++)
    {
        int iPrev = lower_bound(ps.begin(), ps.begin() + i, vi{ps[i][1]}) - ps.begin() - 1;
        mem[i] = max(mem[iPrev] + ps[i][2], mem[i-1]); // take this day or skip
    }

    cout << mem[n] << '\n';

    return 0;
}
