#include<bits/stdc++.h>
using namespace std;
#define int long long
#define maxn 200005
struct node{int a,b,t;}e[maxn];
struct pts{int l,r,pos;};
int T,_,n,nowt,id[maxn];
bool operator < (const pts x,const pts y){return x.r<y.r;}
set<pts> s;
void clear(){
s.clear();
nowt=0;
}
void solve(){
scanf("%lld",&n);
for(int i=1;i<=n;i++){
scanf("%lld%lld%lld",&e[i].a,&e[i].b,&e[i].t);
id[i]=i;
s.insert((pts){i,i,e[i].a});
}
s.insert((pts){0,0,0});
s.insert((pts){n+1,n+1,1200000000});
sort(id+1,id+1+n,[&](int x,int y){return e[x].t<e[y].t;});
for(int i=1;i<=n;i++){
int x=id[i],op=(e[x].b-e[x].a)>=0;
auto now=s.lower_bound((pts){x,x,0});
int pos=(*now).pos+x-(*now).l;
int l=(*now).l,r=(*now).r,pp=(*now).pos;
if(op){
nowt+=(r-x+1)*(e[x].b-pos);
while(1){
auto nxt=s.upper_bound((pts){l,r,0});
if((*nxt).pos<e[x].b+(*nxt).l-x){
r=(*nxt).r;
nowt+=((*nxt).r-(*nxt).l+1)*(e[x].b+(*nxt).l-x-(*nxt).pos);
s.erase(nxt);
}
else break;
}
s.erase(now);
s.insert((pts){l,x-1,pp});
s.insert((pts){x+1,r,e[x].b+1});
}
else{
nowt+=(x-l+1)*(pos-e[x].b);
while(1){
auto nxt=s.lower_bound((pts){l,r,0});
nxt--;
if((*nxt).pos+(*nxt).r-(*nxt).l>e[x].b-(x-(*nxt).r)){
l=(*nxt).l;
nowt+=((*nxt).r-(*nxt).l+1)*((*nxt).pos+(*nxt).r-(*nxt).l-(e[x].b-(x-(*nxt).r)));
s.erase(nxt);
}
else break;
}
s.erase(now);
s.insert((pts){l,x-1,e[x].b-(x-l)});
s.insert((pts){x+1,r,pos+1});
}
if(nowt>e[x].t) {puts("No");return ;}
}
puts("Yes");
}
signed main(){
freopen("move.in","r",stdin);
freopen("move.out","w",stdout);
scanf("%lld%lld",&_,&T);
while(T--){
clear();
solve();
}
return 0;
}