#include<bits/stdc++.h>
using namespace std;
const int N = 610 , INF = 1e9;
int h[N] , a[N] , b[N] , n , f[N][N];
vector<int> p;
int rd()
{
int al = 0 , f = 1;char b = getchar();
while(!isdigit(b)){if(b == '-') f = -1;b = getchar();}
while(isdigit(b)){al = al * 10 + b - '0';b = getchar();}return al * f;
}
int main()
{
int T;
T = rd();
while(T --){
cin >> n;p.clear();
for(int i = 0;i < n;i ++){
a[i] = rd() , b[i] = rd() , h[i] = rd();
p.push_back(a[i]) , p.push_back(b[i]);
}p.push_back(-INF) , p.push_back(INF);
sort(p.begin() , p.end());
p.erase(unique(p.begin() , p.end()) , p.end());
int k = p.size();
for(int s = 1;s < k;s ++){
for(int i = 0;i < k - s;i ++){
int j = s + i , hst = -1;
for(int q = 0;q < n;q ++){
if(p[i] < a[q] && b[q] < p[j] && (hst = -1 || h[hst] < h[q]))
hst = q;
}
int& df = f[i][j]; df = 0;
if(hst != -1){
df = INF;
int l = lower_bound(p.begin() , p.end() , a[hst]) - p.begin();
int r = lower_bound(p.begin() , p.end() , b[hst]) - p.begin();;
for(int d = l;d <= r;d ++){
df = min(df , h[hst] + f[i][d] + f[d][j]);
}
}
}
}printf("%d\n" , f[0][k - 1]);
}return 0;
}