#include <bits/stdc++.h>
#define LL long long
#define ULL unsigned long long
#define LLL __int128
#define pii pair<int, int>
#define pil pair<int, LL>
#define fi first
#define se second
#define mkp make_pair
#define sz(x) (int)x.size()
#define ppc(x) __builtin_popcount(x)
#define pb push_back
using namespace std;
bool Med;
LL read() {
LL s = 0, f = 1;
char ch = getchar();
while (ch < '0' || ch > '9')
f = (ch == '-' ? -1 : 1), ch = getchar();
while (ch >= '0' && ch <= '9')
s = (s << 1) + (s << 3) + (ch ^ 48), ch = getchar();
return s * f;
}
template<typename T> void chkmn(T &x, T y) {x = x > y ? y : x;}
template<typename T> void chkmx(T &x, T y) {x = x < y ? y : x;}
const int MAXN = 200005;
int n;
struct Node {
int a, b;
LL t;
} a[MAXN];
int o[MAXN], L[MAXN], R[MAXN];
struct BIT {
#define lb(x) (x & (-x))
int mx[MAXN];
void clr() {memset(mx, 0, sizeof mx);}
void mdf(int x, int v) { while (x <= n) chkmx(mx[x], v), x += lb(x);}
int qry(int x) {
int res = 0;
while (x) chkmx(res, mx[x]), x -= lb(x);
return res;
}
} t1, t2;
LL getsum(int l, int r) {return 1ll * (l + r) * (r - l + 1) / 2;}
namespace SGT {
const int V = 1e9;
#define mid ((l + r) >> 1)
int ls[MAXN * 100], rs[MAXN * 100], tot = 0, rt = 0;
int cnt[MAXN * 100]; LL sum[MAXN * 100];
int tag[MAXN * 100];
void init() {memset(tag, -1, sizeof tag);}
void clr() {
for (int i = 1; i <= tot; i++) ls[i] = rs[i] = cnt[i] = sum[i] = 0, tag[i] = -1;
tot = rt = 0;
}
void maintain(int p) {cnt[p] = cnt[ls[p]] + cnt[rs[p]], sum[p] = sum[ls[p]] + sum[rs[p]];}
void pushtag(int l, int r, int p, int v) { tag[p] = v, cnt[p] = (r - l + 1) * v, sum[p] = getsum(l, r) * v;}
void pushdown(int l, int r, int p) {
if (tag[p] == -1) return ;
if (!ls[p]) ls[p] = ++tot;
if (!rs[p]) rs[p] = ++tot;
pushtag(l, mid, ls[p], tag[p]), pushtag(mid + 1, r, rs[p], tag[p]), tag[p] = -1;
}
void mdf(int l, int r, int &p, int x, int y, int v) {
if (r < x || y < l) return ;
if (!p) p = ++tot;
if (x <= l && r <= y) return pushtag(l, r, p, v);
pushdown(l, r, p);
mdf(l, mid, ls[p], x, y, v), mdf(mid + 1, r, rs[p], x, y, v);
maintain(p);
}
pil operator + (pil x, pil y) {return mkp(x.fi + y.fi, x.se + y.se);}
pil qry(int l, int r, int p, int x, int y) {
if (r < x || y < l) return mkp(0, 0);
if (x <= l && r <= y) return mkp(cnt[p], sum[p]);
pushdown(l, r, p);
return qry(l, mid, ls[p], x, y) + qry(mid + 1, r, rs[p], x, y);
}
int getL(int l, int r, int p, int x, int &k) {
if (l > x) return -1;
if (r <= x && r - l + 1 - cnt[p] < k) {
k -= r - l + 1 - cnt[p];
return -1;
}
if (l == r) return l;
pushdown(l, r, p);
int v = getL(mid + 1, r, rs[p], x, k);
if (v != -1) return v;
return getL(l, mid, ls[p], x, k);
}
int getR(int l, int r, int p, int x, int &k) {
if (r < x) return -1;
if (x <= l && r - l + 1 - cnt[p] < k) {
k -= r - l + 1 - cnt[p];
return -1;
}
if (l == r) return l;
pushdown(l, r, p);
int v = getR(l, mid, ls[p], x, k);
if (v != -1) return v;
return getR(mid + 1, r, rs[p], x, k);
}
void mdf(int l, int r, int v) {mdf(1, V, rt, l, r, v);}
pil qry(int l, int r) {return qry(1, V, rt, l, r);}
int getL(int x, int k) {return getL(1, V, rt, x, k);}
int getR(int x, int k) {return getR(1, V, rt, x, k);}
}
bool work() {
n = read();
for (int i = 1; i <= n; i++) a[i].a = read(), a[i].b = read(), a[i].t = read(), o[i] = i;
for (int i = 1; i <= n; i++)
if (a[i].a < a[i].b) L[i] = a[i].a > a[i - 1].b ? i : L[i - 1];
for (int i = n; i; i--)
if (a[i].a > a[i].b) R[i] = a[i].a < a[i + 1].b || i == n ? i : R[i + 1];
sort(o + 1, o + n + 1, [](int x, int y) {return a[x].t < a[y].t;});
SGT::clr(), t1.clr(), t2.clr();
for (int i = 1; i <= n; i++) SGT::mdf(a[i].a, a[i].a, 1);
LL tim = 0;
for (int i = 1; i <= n; i++) {
int id = o[i], x = a[id].a, y = a[id].b;
if (x < y) {
int lst = t1.qry(id);
if (lst >= L[id]) chkmx(x, a[lst].b + id - lst);
if (x == y) continue;
pil t = SGT::qry(x, y);
SGT::mdf(x, y, 0);
int R = SGT::getR(y, t.fi);
LL sum = getsum(y, R) - SGT::qry(y, R).se - t.se;
tim += sum, SGT::mdf(y, R, 1), t1.mdf(id, id);
}
else {
int lst = n - t2.qry(n - id + 1) + 1;
if (lst <= R[id]) chkmn(x, a[lst].b - (lst - id));
if (x == y) continue;
pil t = SGT::qry(y, x);
SGT::mdf(y, x, 0);
int L = SGT::getL(y, t.fi);
LL sum = t.se - (getsum(L, y) - SGT::qry(L, y).se);
tim += sum, SGT::mdf(L, y, 1), t2.mdf(n - id + 1, n - id + 1);
}
if (tim > a[id].t) return 0;
}
return 1;
}
bool Mst;
signed main() {
freopen("move.in", "r", stdin);
freopen("move.out", "w", stdout);
SGT::init();
read(); int t = read();
while (t--) printf(work() ? "Yes\n" : "No\n");
return 0;
}