#include<bits/stdc++.h>
using namespace std;
#define pi pair<int,int>
#define pb push_back
#define vec vector<int>
#define int long long
#define inf 2000000000000000000
void in(int &x){
x=0;int f=1;char c=getchar();
while((c>'9'||c<'0')&&c!='-')c=getchar();
if(c=='-')c=getchar(),f=-1;
while(c>='0'&&c<='9')x=x*10+c-'0',c=getchar();
x*=f;
}
int tid,t,n,m,k,x,y,a[200005],b[200005],c[200005],p[200005];
bool cmp(int x,int y){return c[x]<c[y];}
int Sum(int l,int r){return (l+r)*(r-l+1)/2;}
struct SGT{
int d[800005],cov[800005];
int mn[800005],mx[800005];
void pushup(int x){
d[x]=d[x<<1]+d[x<<1|1];
mn[x]=min(mn[x<<1],mn[x<<1|1]);
mx[x]=max(mx[x<<1],mx[x<<1|1]);
}
void down(int l,int r,int x,int v){
mn[x]=mx[x]=v;cov[x]=v;
d[x]=Sum(l,r)+(r-l+1)*v;
}
void pushdown(int l,int r,int x){
if(cov[x]==inf)return;
int mid=(l+r)/2;
down(l,mid,x<<1,cov[x]);
down(mid+1,r,x<<1|1,cov[x]);
cov[x]=inf;
}
void build(int l,int r,int id){
cov[id]=inf;
if(l==r){
d[id]=a[l];
mn[id]=mx[id]=a[l]-l;
return;
}
int mid=(l+r)/2;
build(l,mid,id<<1);
build(mid+1,r,id<<1|1);
pushup(id);
}
void upd(int l,int r,int id,int ql,int qr,int k){
if(ql>qr)return;
if(ql<=l&&r<=qr){down(l,r,id,k);return;}
int mid=(l+r)/2;pushdown(l,r,id);
if(ql<=mid)upd(l,mid,id<<1,ql,qr,k);
if(mid+1<=qr)upd(mid+1,r,id<<1|1,ql,qr,k);
pushup(id);
}
int query(int l,int r,int id,int ql,int qr){
if(ql>qr)return 0;
if(ql<=l&&r<=qr)return d[id];
int mid=(l+r)/2,ans=0;pushdown(l,r,id);
if(ql<=mid)ans+=query(l,mid,id<<1,ql,qr);
if(mid+1<=qr)ans+=query(mid+1,r,id<<1|1,ql,qr);
return ans;
}
int findr(int l,int r,int id,int q,int k){
if(mx[id]<k)return -1;
if(l==r)return l;
int mid=(l+r)/2,ans=-1;pushdown(l,r,id);
if(q<=mid)ans=findr(l,mid,id<<1,q,k);
if(ans==-1)ans=findr(mid+1,r,id<<1|1,q,k);
return ans;
}
int findl(int l,int r,int id,int q,int k){
if(mn[id]>k)return -1;
if(l==r)return l;
int mid=(l+r)/2,ans=-1;pushdown(l,r,id);
if(mid+1<=q)ans=findl(mid+1,r,id<<1|1,q,k);
if(ans==-1)ans=findl(l,mid,id<<1,q,k);
return ans;
}
}G;
void solve(){
in(n);
for(int i=1;i<=n;i++)in(a[i]),in(b[i]),in(c[i]),p[i]=i;
sort(p+1,p+1+n,cmp);
G.build(1,n,1);
int tim=0;
for(int u=1;u<=n;u++){
int i=p[u];
if(a[i]<b[i]){
int o=n;
if(i!=n)o=G.findr(1,n,1,i+1,b[i]-i)-1;
if(o==-2)o=n;
int p=o-i+b[i],sm=Sum(b[i]+1,p),w=b[i]-i;
sm-=G.query(1,n,1,i+1,o);
G.upd(1,n,1,i+1,o,w);
tim+=sm+b[i]-G.query(1,n,1,i,i);
G.upd(1,n,1,i,i,b[i]-i);
if(tim>c[i]){puts("No");return;}
}
else{
int o=1;
if(i!=1)o=G.findl(1,n,1,i-1,b[i]-i)+1;
if(o==0)o=1;
int p=b[i]-i+o,sm=-Sum(p,b[i]-1),w=b[i]-i;
sm+=G.query(1,n,1,o,i-1);
G.upd(1,n,1,o,i-1,w);
tim+=sm+G.query(1,n,1,i,i)-b[i];
G.upd(1,n,1,i,i,b[i]-i);
if(tim>c[i]){puts("No");return;}
}
}
puts("Yes");
}
signed main(){
freopen("move.in","r",stdin);
freopen("move.out","w",stdout);
in(tid);in(t);
while(t--)solve();
}