#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <string>
#include <cmath>
#include <cstdlib>
#include <queue>
#define ll long long
#define N 50017
#define BIG 100020060509
using namespace std;
ll Min(ll a,ll b){return a<b?a:b;}
ll Max(ll a,ll b){return a>b?a:b;}
ll read(){
ll x=0,w=0;char ch=0;
while(!isdigit(ch)){w|=ch=='-';ch=getchar();}
while(isdigit(ch)){x=(x<<3)+(x<<1)+(ch^48);ch=getchar();}
return w?-x:x;
}
ll n,m,k;
ll next[(N<<1)+N],to[(N<<1)+N],head[N],w[(N<<1)+1],cnt=1;
ll dis[N];
bool vis[N];
ll minn,maxx;
void add(ll x,ll y,ll z){
next[++cnt]=head[x];
to[cnt]=y;
w[cnt]=z;
head[x]=cnt;
}
void spfa(ll x){
queue<ll> q;
ll top=0;
for(int i=minn;i<=maxx;++i)dis[i]=-BIG;
dis[x]=0;
memset(vis,false,sizeof(vis));
q.push(x);
vis[x]=true;
while(!q.empty()){
ll p=q.front();
q.pop();
vis[p]=false;
for(int i=head[p];i;i=next[i]){
ll tt=to[i];
if(dis[tt]<dis[p]+w[i]){
dis[tt]=dis[p]+w[i];
if(!vis[tt]){
vis[tt]=true;
q.push(tt);
}
}
}
}
cout<<dis[maxx]<<endl;
return ;
}
int main(){
ll T=read();
while(T--){
n=read();
minn=BIG;
maxx=-1;
for(int i=1;i<=n;++i){
ll x=read(),y=read(),z=read();
add(x-1,y,z);
maxx=Max(maxx,y);
minn=Min(minn,x-1);
}
for(int i=minn;i<=maxx;++i){
add(i,i+1,0);
add(i+1,i,-1);
}
spfa(minn);
}
return 0;
}