#include <bits/stdc++.h>
#define getchar gcw
#define ll long long
using namespace std;
inline int getchar(){
static char a[1<<20],*p=a,*q=a;
if(p==q) q=(p=a)+fread(a,1,1<<20,stdin);
return *p++;
}
inline int read(){
int x=0; int c=getchar();
for(;c<'0'||c>'9';c=getchar());
for(;c>='0'&&c<='9';c=getchar()) x=(x*10)+(c^48);
return x;
}
inline ll readll(){
ll x=0; int c=getchar();
for(;c<'0'||c>'9';c=getchar());
for(;c>='0'&&c<='9';c=getchar()) x=(x*10)+(c^48);
return x;
}
const int N=2e5+10;
ll arith(int l,int r){ return (r-l+1ll)*(l+r)>>1; }
int n;
int a[N],b[N]; ll tim[N];
int ord[N];
struct segt{
static const int M=N<<2;
int lef[M],rit[M],tag[M];
ll sum[M];
void psu(int p){
lef[p]=lef[p<<1];
rit[p]=rit[p<<1|1];
sum[p]=sum[p<<1]+sum[p<<1|1];
}
void psd(int p){
if(!tag[p]) return;
int mid=(lef[p]+rit[p])>>1;
lef[p<<1]=lef[p];
rit[p<<1]=mid;
sum[p<<1]=arith(lef[p],mid);
lef[p<<1|1]=mid+1;
rit[p<<1|1]=rit[p];
sum[p<<1|1]=arith(mid+1,rit[p]);
tag[p<<1]=tag[p<<1|1]=true;
tag[p]=false;
}
void build(int l,int r,int p){
tag[p]=0;
if(l==r) {
lef[p]=rit[p]=sum[p]=a[l];
return;
}
int mid=(l+r)>>1;
build(l,mid,p<<1);
build(mid+1,r,p<<1|1);
psu(p);
}
void push_left(int l,int r,int p,int x,int d){
if(r==x&&d-(r-l)<=lef[p]){
tag[p]=true;
rit[p]=d;
lef[p]=d-(r-l);
sum[p]=arith(lef[p],rit[p]);
return;
}
assert(l!=r);
psd(p);
int mid=(l+r)>>1;
if(x<=mid) push_left(l,mid,p<<1,x,d);
else{
push_left(mid+1,r,p<<1|1,x,d);
int plc=lef[p<<1|1]-1;
if(plc<rit[p<<1]) push_left(l,mid,p<<1,mid,plc);
}
psu(p);
}
void push_right(int l,int r,int p,int x,int d){
if(l==x&&d+(r-l)>=rit[p]){
tag[p]=true;
lef[p]=d;
rit[p]=d+(r-l);
sum[p]=arith(lef[p],rit[p]);
return;
}
assert(l!=r);
psd(p);
int mid=(l+r)>>1;
if(x>mid) push_right(mid+1,r,p<<1|1,x,d);
else{
push_right(l,mid,p<<1,x,d);
int plc=rit[p<<1]+1;
if(plc>lef[p<<1|1]) push_right(mid+1,r,p<<1|1,mid+1,plc);
}
psu(p);
}
void build(){ build(1,n,1); }
ll push_left(int x,int d){
ll before=sum[1];
push_left(1,n,1,x,d);
ll after=sum[1];
return before-after;
}
ll push_right(int x,int d){
ll before=sum[1];
push_right(1,n,1,x,d);
ll after=sum[1];
return after-before;
}
}T;
void solve(){
n=read();
for(int i=1;i<=n;i++){
a[i]=read(); b[i]=read(); tim[i]=readll();
ord[i]=i;
}
sort(ord+1,ord+n+1,[&](int x,int y){ return tim[x]<tim[y]; });
T.build();
ll rem=0;
for(int j=1;j<=n;j++){
int i=ord[j];
rem+=tim[i]-tim[ord[j-1]];
if(b[i]<a[i]) rem-=T.push_left(i,b[i]);
else rem-=T.push_right(i,b[i]);
if(rem<0){
puts("No");
return;
}
}
puts("Yes");
}
int main(){
freopen("move.in","r",stdin);
freopen("move.out","w",stdout);
int tc; read(); tc=read();
while(tc--){
solve();
}
}