#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=2e5+7;
int c,T,n,a[N],b[N],t[N],ip[N];
int sum[N<<2],minn[N<<2],maxn[N<<2],tg[N<<2];
bool cmp(int x,int y){
return t[x]<t[y];
}
int nw;
void build(int id,int l,int r){
tg[id]=-1;
if(l==r){
sum[id]=minn[id]=maxn[id]=a[l];
return;
}
int mid=(l+r)>>1;
build(id<<1,l,mid);
build(id<<1|1,mid+1,r);
sum[id]=sum[id<<1]+sum[id<<1|1];
minn[id]=min(minn[id<<1],minn[id<<1|1]);
maxn[id]=max(maxn[id<<1],maxn[id<<1|1]);
return;
}
void push_down(int id,int l,int r){
if(tg[id]!=-1){
int mid=(l+r)>>1;
tg[id<<1]=tg[id];
tg[id<<1|1]=tg[id];
minn[id<<1]=minn[id<<1|1]=tg[id];
maxn[id<<1]=maxn[id<<1|1]=tg[id];
sum[id<<1]=(mid-l+1)*tg[id];
sum[id<<1|1]=(r-mid)*tg[id];
tg[id]=-1;
}
return;
}
void chkmn(int id,int l,int r,int ql,int qr,int vl){
if(ql<=l&&r<=qr){
if(vl<=minn[id]){
nw+=sum[id]-vl*(r-l+1);
minn[id]=maxn[id]=vl;
sum[id]=vl*(r-l+1);
tg[id]=vl;
return;
}
if(vl>=maxn[id]){
return;
}
push_down(id,l,r);
int mid=(l+r)>>1;
chkmn(id<<1,l,mid,ql,qr,vl);
chkmn(id<<1|1,mid+1,r,ql,qr,vl);
sum[id]=sum[id<<1]+sum[id<<1|1];
minn[id]=min(minn[id<<1],minn[id<<1|1]);
maxn[id]=max(maxn[id<<1],maxn[id<<1|1]);
return;
}
push_down(id,l,r);
int mid=(l+r)>>1;
if(ql<=mid)chkmn(id<<1,l,mid,ql,qr,vl);
if(qr>mid)chkmn(id<<1|1,mid+1,r,ql,qr,vl);
sum[id]=sum[id<<1]+sum[id<<1|1];
minn[id]=min(minn[id<<1],minn[id<<1|1]);
maxn[id]=max(maxn[id<<1],maxn[id<<1|1]);
return;
}
void chkmx(int id,int l,int r,int ql,int qr,int vl){
if(ql<=l&&r<=qr){
if(vl>=maxn[id]){
nw+=vl*(r-l+1)-sum[id];
minn[id]=maxn[id]=vl;
sum[id]=vl*(r-l+1);
tg[id]=vl;
return;
}
if(vl<=minn[id]){
return;
}
push_down(id,l,r);
int mid=(l+r)>>1;
chkmx(id<<1,l,mid,ql,qr,vl);
chkmx(id<<1|1,mid+1,r,ql,qr,vl);
sum[id]=sum[id<<1]+sum[id<<1|1];
minn[id]=min(minn[id<<1],minn[id<<1|1]);
maxn[id]=max(maxn[id<<1],maxn[id<<1|1]);
return;
}
push_down(id,l,r);
int mid=(l+r)>>1;
if(ql<=mid)chkmx(id<<1,l,mid,ql,qr,vl);
if(qr>mid)chkmx(id<<1|1,mid+1,r,ql,qr,vl);
sum[id]=sum[id<<1]+sum[id<<1|1];
minn[id]=min(minn[id<<1],minn[id<<1|1]);
maxn[id]=max(maxn[id<<1],maxn[id<<1|1]);
return;
}
signed main(){
freopen("move.in","r",stdin);
freopen("move.out","w",stdout);
ios::sync_with_stdio(0);
cin.tie(0);
cin>>c>>T;
while(T--){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i]>>b[i]>>t[i];
a[i]-=i;
b[i]-=i;
ip[i]=i;
}
sort(ip+1,ip+n+1,cmp);
build(1,1,n);
bool ok=1;
nw=0;
for(int i=1;i<=n;i++){
if(a[ip[i]]>b[ip[i]]){
chkmn(1,1,n,1,ip[i],b[ip[i]]);
}else{
chkmx(1,1,n,ip[i],n,b[ip[i]]);
}
if(nw>t[ip[i]]){
ok=0;
break;
}
}
if(ok)cout<<"Yes\n";
else cout<<"No\n";
}
return 0;
}