#include<bits/stdc++.h>
using namespace std;
int C,T;
int n;
long long rai[200005],rbi[200005],rti[200005];
long long ai[200005],bi[200005],ti[200005];
long long pr[200005];
pair<long long,int> od[200005];
long long mi[800005],ma[800005];
void Build(int rt,int L,int R)
{
mi[rt]=n+1,ma[rt]=0;
if(L==R)
return;
int mid=(L+R)/2;
Build(rt*2,L,mid);
Build(rt*2+1,mid+1,R);
}
void Modi(int rt,int L,int R,int l,int r,long long x,char o)
{
if(l==L && r==R)
{
if(o=='i')
mi[rt]=min(mi[rt],x);
else
ma[rt]=max(ma[rt],x);
return;
}
if(L==R)
return;
int mid=(L+R)/2;
if(l<=mid)
Modi(rt*2,L,mid,l,min(r,mid),x,o);
if(r>mid)
Modi(rt*2+1,mid+1,R,max(l,mid+1),r,x,o);
}
long long Query(int rt,int L,int R,int x,char o)
{
if(L==R)
{
if(o=='i')
return mi[rt];
else
return ma[rt];
}
int mid=(L+R)/2;
long long v1=(o=='i'?mi[rt]:ma[rt]),v2;
if(x<=mid)
v2=Query(rt*2,L,mid,x,o);
else
v2=Query(rt*2+1,mid+1,R,x,o);
if(o=='i')
return min(v1,v2);
else
return max(v1,v2);
}
long long tri1(int lx,int rx)
{
return pr[rx]-pr[lx-1]-(ai[rx]-ai[lx-1])*(lx-1);
}
long long tri(int lx,long long r)
{
int L=1,R=n;
while(L<R)
{
int Mid=(L+R+1)/2;
if(ai[Mid]>r)
R=Mid-1;
else
L=Mid;
}
int rx=L;
return tri1(lx,rx)+(rx-lx+1)*(r-ai[rx]);
}
int main()
{
std::ios::sync_with_stdio(false);
cin.tie(0);
freopen("move.in","r",stdin);
freopen("move.out","w",stdout);
cin>>C>>T;
while(T--)
{
cin>>n;
for(int i=1;i<=n;i++)
cin>>rai[i]>>rbi[i]>>rti[i];
for(int i=1;i<=n;i++)
{
if(rai[i]>=rbi[i] && (i==1 || rai[i-1]<rbi[i-1]))
{
long long l=rbi[i],r=rai[n],cr=n;
for(int j=i;j<=n;j++)
{
if(rai[j]<rbi[j])
{
r=rai[j-1];
cr=j-1;
break;
}
}
for(int j=i;j<=cr;j++)
{
rai[j]=r+l-rai[j];
rbi[j]=r+l-rbi[j];
}
for(int j=i;j<i+cr-j;j++)
{
long long t=rai[j];
rai[j]=rai[i+cr-j];
rai[i+cr-j]=t;
t=rbi[j];
rbi[j]=rbi[i+cr-j];
rbi[i+cr-j]=t;
t=rti[j];
rti[j]=rti[i+cr-j];
rti[i+cr-j]=t;
}
i=cr;
}
}
for(int i=1;i<=n;i++)
{
ai[i]=rai[i]-i;
bi[i]=rbi[i]-i;
ti[i]=rti[i];
}
ai[n+1]=2e9;
pr[0]=0;
for(int i=1;i<=n;i++)
{
pr[i]=pr[i-1]+(i-1)*(ai[i]-ai[i-1]);
}
Build(1,1,n);
for(int i=1;i<=n;i++)
{
od[i]=make_pair(ti[i],i);
}
sort(od+1,od+n+1);
long long curt=0;
bool flag=1;
for(int ri=1;ri<=n;ri++)
{
int i=od[ri].second;
int l=Query(1,1,n,i,'a'),r=Query(1,1,n,i,'i');
long long ans=tri(i,bi[i]);
if(bi[l]>ai[i])
ans-=tri(i,bi[l]);
if(ai[r]<bi[i])
ans-=tri(r,bi[i]);
if(bi[l]>ai[r] && ai[r]<bi[i] && bi[l]>ai[i])
{
ans+=tri(r,bi[l]);
}
curt+=ans;
if(curt>ti[i])
{
flag=0;
break;
}
Modi(1,1,n,1,i-1,i,'i');
Modi(1,1,n,i+1,n,i,'a');
}
if(flag)
cout<<"Yes\n";
else
cout<<"No\n";
}
return 0;
}