#include<bits/stdc++.h>
using namespace std;
const int N=200005;
struct op{
int l,r,lz,k,sz;
long long b,v,s;
}t[N];
#define l(x) t[x].l
#define r(x) t[x].r
void miHoYo(int x){
if(t[x].lz==0)return;
t[x].lz=0;
if(l(x)){
t[l(x)].lz=1,t[l(x)].b=t[x].b;
t[l(x)].v=l(x)+t[x].b;
t[l(x)].s=t[x].b*t[l(x)].sz+1ll*(x*2-t[l(x)].sz-1)*t[l(x)].sz/2;
}
if(r(x)){
t[r(x)].lz=1,t[r(x)].b=t[x].b;
t[r(x)].v=r(x)+t[x].b;
t[r(x)].s=t[x].b*t[r(x)].sz+1ll*(x*2+t[r(x)].sz+1)*t[r(x)].sz/2;
}
}
void NTT(int x){
t[x].sz=t[l(x)].sz+t[r(x)].sz+1;
t[x].s=t[x].v+t[l(x)].s+t[r(x)].s;
}
int hb(int x,int y){
if(x==0||y==0)return x+y;
miHoYo(x),miHoYo(y);
if(t[x].k<=t[y].k){
r(x)=hb(r(x),y),NTT(x);
return x;
}else{
l(y)=hb(x,l(y)),NTT(y);
return y;
}
}
void fl(int x,long long v,int &l,int &r){
if(x==0){
l=r=0;
return;
}
miHoYo(x);
if(t[x].v<v){
l=x,fl(r(x),v,r(x),r),NTT(x);
}else{
r=x,fl(l(x),v,l,l(x)),NTT(x);
}
}
long long cx(int x,int k){
if(k>x+t[r(x)].sz)return 1e18;
if(k<=0)return -1e18;
if(x==k||x==0)return t[x].v;
miHoYo(x);
if(x<k)return cx(r(x),k);
return cx(l(x),k);
}
long long read(){
long long x=0;
char c=getchar();
while(c<48||c>57)c=getchar();
while(48<=c&&c<=57)x=x*10+c-48,c=getchar();
return x;
}
int T,n,rt,ans,rr,tt,id,Ls;
long long ls,cnt;
struct o2{
int id;
long long a,b,t;
bool operator<(const o2 &y)const{return t<y.t;}
}xz[N];
void FFT(){
ans=1,cnt=rt=0,n=read();
for(int i=1;i<=n;i++){
t[i].s=t[i].v=xz[i].a=read(),xz[i].b=read();
xz[i].t=read(),l(i)=r(i)=t[i].lz=0;
t[i].sz=1,t[i].b=0;
rt=hb(rt,i),xz[i].id=i;
}
sort(xz+1,xz+n+1);
}
void xg(int x,long long b,int mi){
t[x].lz=1,t[x].b=b,t[x].v=x+b;
t[x].s=b*t[x].sz+1ll*(mi*2+t[x].sz-1)*t[x].sz/2;
}
int cx1(int x,int sum,long long p0){
if(x==0)return t[rt].sz+sum;
miHoYo(x);
int ans=t[rt].sz+sum;
if(p0-t[x].v+1>=sum+t[r(x)].sz+1){
ans=sum+t[r(x)].sz;
ans=min(ans,cx1(r(x),sum,p0));
}else{
ans=cx1(l(x),sum+t[r(x)].sz+1,p0);
}
return ans;
}
int cx2(int x,int sum,long long p0){
if(x==0)return t[tt].sz+sum;
miHoYo(x);
int ans=t[tt].sz+sum;
if(t[x].v-p0+1>=sum+t[l(x)].sz+1){
ans=sum+t[l(x)].sz;
ans=min(ans,cx2(l(x),sum,p0));
}else{
ans=cx2(r(x),sum+t[l(x)].sz+1,p0);
}
return ans;
}
signed main(){
freopen("move.in","r",stdin);
freopen("move.out","w",stdout);
cin>>T>>T;
for(int i=1;i<N;i++)t[i].k=rand();
while(T--){
FFT();
for(int i=1;i<=n;i++){
id=xz[i].id,ls=cx(rt,id);
if(ls<=xz[i].b){
fl(rt,ls,rt,rr);
fl(rr,xz[i].b+1,rr,tt);
ls=cx2(tt,t[rr].sz,xz[i].b);
rr=hb(rr,tt);
fl(rr,cx(rr,t[rt].sz+ls+1),rr,tt);
cnt+=(xz[i].b*t[rr].sz-t[rr].s+1ll*t[rr].sz*(t[rr].sz-1)/2);
xg(rr,xz[i].b-id,id);
}else{
fl(rt,xz[i].b,rt,rr);
fl(rr,ls+1,rr,tt);
ls=cx1(rt,t[rr].sz,xz[i].b);
rt=hb(rt,rr),fl(rt,cx(rt,t[rt].sz-ls+1),rt,rr);
cnt+=(t[rr].s-xz[i].b*t[rr].sz+1ll*t[rr].sz*(t[rr].sz-1)/2);
xg(rr,xz[i].b-id,id-t[rr].sz+1);
}
rt=hb(rt,hb(rr,tt));
if(cnt>xz[i].t){
ans=0;
break;
}
}
if(ans)printf("Yes\n");
else printf("No\n");
}
return 0;
}