#include<bits/stdc++.h>
using namespace std;
#define int long long
#define rep(a,b,c) for(int a=b;a<=c;++a)
#define dep(a,b,c) for(int a=b;a>=c;--a)
const int N = 3e5+7; const int inf = 1e9+7; const int mod = 998244353;
const int F = 107;
int c,T;
int n,now;
struct node{
int a,b,t,d;
}e[N];
inline bool cmpt(node x,node y) { return x.t>y.t; }
bool ptd,p[F]; int book[F],ko[F],w[F],an[F];
inline void dfs(int x)
{
if(x==n+1)
{
int sum=0;
rep(j,0,16) ko[j]=0;
rep(i,1,n) { w[i]=e[i].a; ko[e[i].a]=i; an[i]=0; }
rep(ii,1,n)
{
int i=book[ii];
if(w[i]==e[i].b) continue;
if(w[i]<e[i].b)
{
int j=0,k=w[i],s=0;
while(e[i].b+j>k) { k++; if(ko[k]>0) j++; }
rep(k,w[i]+1,e[i].b+j)
if(ko[k]!=0)
{
s++;
sum=sum+e[i].b+s-w[ko[k]];
w[ko[k]]=e[i].b+s;
}
sum=sum+abs(w[i]-e[i].b);
w[i]=e[i].b;
}
else
{
int j=0,k=w[i],s=0;
while(e[i].b-j>k) { k--; if(ko[k]>0) j++; }
rep(k,w[i]-1,e[i].b-j)
if(ko[k]!=0)
{
s++;
sum=sum+w[ko[k]]-(e[i].b-s);
w[ko[k]]=e[i].b-s;
}
sum=sum+abs(w[i]-e[i].b);
w[i]=e[i].b;
}
rep(j,0,16) ko[j]=0;
rep(j,1,n) ko[w[j]]=j;
rep(j,1,n) if(w[j]==e[j].b&&an[j]==0)
{ an[j]=sum; if(sum>e[j].t) return; }
}
rep(i,1,n) if(an[i]>e[i].t) return;
ptd=true;
}
rep(i,1,n) if(p[i]==0)
{
p[i]=1; book[x]=i;
dfs(x+1); p[i]=0;
}
return;
}
signed main()
{
freopen("move.in","r",stdin);
freopen("move.out","w",stdout);
cin>>c>>T;
while(T--)
{
cin>>n;
rep(i,1,n) cin>>e[i].a>>e[i].b>>e[i].t;
if(c==1||c==4||c==8||c==12)
{
now=0;
rep(i,1,n) e[i].d=abs(e[i].a-e[i].b);
rep(i,1,n) now=now+e[i].d;
if(now<=e[1].t) cout<<"Yes\n";
else cout<<"No\n";
continue;
}
if(c==2||c==3)
{
ptd=0;
dfs(1);
if(ptd==1) cout<<"Yes\n";
else cout<<"No\n";
continue;
}
rep(i,1,n) e[i].d=abs(e[i].a-e[i].b);
sort(e+1,e+n+1,cmpt);
now=e[1].t;
bool p=true;
rep(i,1,n)
{
now=now-e[i].d;
if(i!=n) now=min(now,e[i+1].t);
if(now<0) { p=false; break; }
}
if(p==false) cout<<"No\n";
else cout<<"Yes\n";
}
return 0;
}