#include <bits/stdc++.h>

using namespace std;

const int INF = 0x3fffFFFF;

int vis[310];
int   A[310];
int   B[310];
int   D[310];
int n;

int dp[610][610];

int main()
{
	int T;
	scanf("%d", &T);
	while (T--) {
		memset(dp, 0, sizeof(dp));
		scanf("%d", &n);
		vector<int> Q;
		for (int i = 0; i < n; i++) {
			scanf("%d%d%d", A + i, B + i, D + i);
			Q.push_back(A[i]);
			Q.push_back(B[i]);
		}
		sort(Q.begin(), Q.end());
		Q.resize(unique(Q.begin(), Q.end()) - Q.begin());	
		for (int i = 0; i < n; i++) {
			A[i] = lower_bound(Q.begin(), Q.end(), A[i]) - Q.begin() + 1;
			B[i] = lower_bound(Q.begin(), Q.end(), B[i]) - Q.begin() + 1;
		}
		
		for (int L = 1; L < Q.size(); L++) {
			for (int i = 1; i + L <= Q.size(); i++) {
				int j = i + L;
				int mx = -1;
				for (int k = 0; k < n; k++) {
					if (i <= A[k] && B[k] <= j) {
						mx = max(mx, D[k]);
					}
				}
				if (mx == -1) {
					dp[i][j] = 0;
					continue;
				}
				dp[i][j] = INF;
				for (int x = i; x <= j; x++) {
					dp[i][j] = min(dp[i][j], dp[i][x - 1] + dp[x + 1][j] + mx);
				}
				//printf("## %d %d %d\n", i, j, dp[i][j]);
			}
		}
		printf("%d\n", dp[1][Q.size()]);
	}
	return 0;
}
