#include <bits/stdc++.h>
using namespace std;

long long M, hari_max = 0, S[10001], E[10001], P[10001], memo[10001][10001];

long long f(int N, int H){
	if (memo[N][H] != 0){
		return memo[N][H];
	}
	if (N < 1 || H < 1){
		return 0;
	} else {
		if (E[N] <= H){
			int ambil = P[N] + f(N-1, S[N] - 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 >> S[i] >> E[i] >> P[i];
		hari_max = max(hari_max, E[i]);
	}
	
	for (int i = 1; i < M; i++){
		for (int j = i+1; j <= M; j++){
			if (E[i] > E[j]){
				swap(E[i], E[j]);
				swap(S[i], S[j]);
				swap(P[i], P[j]);
			}
		}
	}
	
	cout << f(M, hari_max) << endl;
	
	return 0;
}