#include <bits/stdc++.h>
using namespace std;
const int N = 5e5 + 10;
const int R = 5e4 + 100;
int head[N];
int step[N];
int vis[N];
pair<int, int> p[N];
int n, m;
int tot;
struct node {
int to, next, dis;
}edge[N];
void spfa() {
memset(step, 0x3f, sizeof step);
queue<int> que;
que.push(R);
step[R] = 0;
while (que.size()) {
int x = que.front();
que.pop();
for (int i=head[x]; i; i=edge[i].next) {
int y = edge[i].to;
int dis = edge[i].dis;
if (step[y] > step[x]+dis) {
step[y] = step[x]+dis;
que.push(y);
}
}
}
}
void add(int from, int to, int dis) {
edge[++tot].to = to;
edge[tot].dis = dis;
edge[tot].next = head[from];
head[from] = tot;
}
int input() {
tot = 0;
memset(head, 0, sizeof head);
memset(edge, 0, sizeof edge);
memset(vis, 0, sizeof vis);
memset(p, 0, sizeof p);
add(R, 0, 0);
add(R, 5e4, 0);
add(R, 5e4+1, 0);
for (int i=1; i<5e4; i++) {
add(i, i+1, 1);
add(i+1, i, 0);
add(R, i, 0);
}
cin >> n;
for (int i=1; i<=n; i++) {
int a, b, c;
cin >> a >> b >> c;
a++, b++;
p[i] = {a, b};
add(b, a-1, -c);
}
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int t;
cin >> t;
while (t--) {
input();
spfa();
int mx = 0;
int mn = 1e9;
for (int i=1; i<=n; i++) {
mx = max(mx, p[i].second);
mn = min(mn, p[i].first);
}
cout << step[mx] - step[mn-1] << endl;
}
return 0;
}