#include<bits/stdc++.h>
#define mid ((l+r)>>1)
#define int long long
#define rs now<<1|1
#define ls now<<1
using namespace std;
const int N=2e5+10;
struct node{int x,y,ti;bool operator <(const node &t)const{return ti<t.ti;}}a[N];
int T,n,cas,p[N];
struct Segment{
int sum[N<<2],cov[N<<2],maxx[N<<2],len[N<<2],minn[N<<2];
inline void cover(int now,int v){sum[now]=len[now]*v;cov[now]=minn[now]=maxx[now]=v;}
inline void pushup(int now){maxx[now]=max(maxx[ls],maxx[rs]);sum[now]=sum[ls]+sum[rs];minn[now]=min(minn[ls],minn[rs]);}
inline void pushdown(int now){if(cov[now]){cover(ls,cov[now]);cover(rs,cov[now]);cov[now]=0;}}
void build(int now,int l,int r){
len[now]=r-l+1;cov[now]=0;
if(l==r){maxx[now]=minn[now]=sum[now]=a[l].x;return ;}
build(ls,l,mid);build(rs,mid+1,r);pushup(now);
}
void upd(int now,int l,int r,int x,int y,int v){
if(x>y||x>r||y<l) return ;
if(x<=l&&r<=y) return cover(now,v);
pushdown(now);upd(ls,l,mid,x,y,v);upd(rs,mid+1,r,x,y,v);pushup(now);
}
int ask(int now,int l,int r,int x,int y){
if(x>y||x>r||y<l) return 0;
if(x<=l&&r<=y) return sum[now];
pushdown(now);return ask(ls,l,mid,x,y)+ask(rs,mid+1,r,x,y);
}
int SearchR(int now,int l,int r,int to,int v){
if(l==r) return l;
pushdown(now);
if((to>mid)||maxx[ls]<v) return SearchR(rs,mid+1,r,to,v);
else return SearchR(ls,l,mid,to,v);
}
int SearchL(int now,int l,int r,int to,int v){
if(l==r) return l;
pushdown(now);
if((to<=mid)||(minn[rs]>v)) return SearchL(ls,l,mid,to,v);
else return SearchL(rs,mid+1,r,to,v);
}
}t;
#define son 1,0,n+1
inline int Solve(){
cin>>n;int now=0;a[n+1].x=1e9+1;
for(int i=1;i<=n;++i) cin>>a[i].x>>a[i].y>>a[i].ti;
for(int i=1;i<=n;++i) a[i].x-=i,a[i].y-=i,p[i]=i;
t.build(son);sort(p+1,p+1+n,[](const int x,const int y){return a[x].ti<a[y].ti;});
for(int j=1;j<=n;++j){
int i=p[j],val=t.ask(son,i,i);
if(val==a[i].y) continue;
if(val<a[i].y){
int pos=t.SearchR(son,i,a[i].y);
if(pos==i) continue;
now+=(pos-i)*a[i].y-t.ask(son,i,pos-1);
t.upd(son,i,pos-1,a[i].y);
}else {
int pos=t.SearchL(son,i,a[i].y);
if(pos==i) continue;
now+=t.ask(son,pos+1,i)-(i-pos)*a[i].y;
t.upd(son,pos+1,i,a[i].y);
}
if(now>a[i].ti) return 0;
}
return 1;
}
signed main(){
freopen("move.in","r",stdin);freopen("move.out","w",stdout);
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>cas>>T;
while(T--){cout<<(Solve()?"Yes\n":"No\n");}
return 0;
}