#include <bits/stdc++.h>
#define fu(i,a,b) for(int i=(a);i<=(b);i++)
#define fd(i,a,b) for(int i=(a);i>=(b);i--)
#define inn(a,b,c) ((a)<=(b)&&(b)<=(c))
using namespace std;
const int MAXN=2e5+10;
typedef long long ll;
int n;
int a[MAXN],b[MAXN];
int rnk[MAXN];
ll t[MAXN],tick;
struct node{ll a;int b;}tmp[MAXN];
void move(int u,int y){
int edd=y;
if(a[u]==y) return;
else if(a[u]<y){
fu(i,u+1,n){
if(a[i]<=edd){
edd++;
tick+=edd-a[i];
a[i]=edd;
}
else break;
}
tick+=y-a[u];
a[u]=y;
return ;
}
else if(a[u]>y){
fd(i,u-1,1){
if(a[i]>=edd){
edd--;
tick+=a[i]-edd;
a[i]=edd;
}
else break;
}
tick+=a[u]-y;
a[u]=y;
return ;
}
}
inline void solve(){
cin>>n;
fu(i,1,n) cin>>a[i]>>b[i]>>t[i];
fu(i,1,n) tmp[i].a=t[i],tmp[i].b=i;
sort(tmp+1,tmp+1+n,[](node x,node y)->bool{return x.a<y.a;});
fu(i,1,n) rnk[i]=tmp[i].b;
fu(i,1,n) cerr<<rnk[i]<<' '; cerr<<"\n";
tick=0;
fu(i,1,n){
move(rnk[i],b[rnk[i]]);
if(tick>t[rnk[i]]) {
cout<<"No\n";
return ;
}
}
cout<<"Yes\n";
return ;
}
inline void solveA(){
ll step=0;
cin>>n;
fu(i,1,n) cin>>a[i]>>b[i]>>t[i],step+=abs(b[i]-a[i]);
if(step>t[1]) cout<<"No\n";
else cout<<"Yes\n";
return ;
}
int main(){
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
freopen("move.in" ,"r",stdin );
freopen("move.out","w",stdout);
int c,T;
cin>>c>>T;
if(c==12){
fu(tc,1,T)
solveA();
}
else{
fu(tc,1,T)
solve();
}
return 0;
}