#include <bits/stdc++.h>
using namespace std;
const long long mod = 1e9 + 7, INFL = 1e18, INFI = 1e9, N = 1e6 + 5;
int Case = 1, cas = 0;
struct exo {
  long long a, b, h;
  exo() {}
  exo(long long x, long long y, long long z) { a = x, b = y, h = z; }
  bool operator<(const exo &p) const {
    if (b == p.b) return a > p.a;
    return b > p.b;
  }
};
int main() {
  ios_base ::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  ;
  int n;
  vector<exo> A;
  cin >> n;
  for (int i = 0; i < n; i++) {
    long long a, b, h;
    cin >> a >> b >> h;
    A.emplace_back(exo(a, b, h));
  }
  sort((A).begin(), (A).end());
  stack<exo> hanoi;
  long long Ans = 0;
  for (int i = 0; i < n; i++) {
    if (hanoi.empty()) {
      hanoi.push(A[i]);
      Ans = max(Ans, hanoi.top().h);
    } else {
      while (!hanoi.empty() && hanoi.top().a >= A[i].b) {
        Ans = max(Ans, hanoi.top().h);
        hanoi.pop();
      }
      if (hanoi.size())
        hanoi.push(exo(A[i].a, A[i].b, hanoi.top().h + A[i].h));
      else {
        hanoi.push(A[i]);
      }
      Ans = max(Ans, hanoi.top().h);
    }
  }
  cout << Ans << endl;
  return 0;
}
