#include <bits/stdc++.h>
#define int long long
using namespace std;
struct TREE{
int v;
int mark;
}tree[11451414];
int n,s,m;
void pushdown(int v) {
tree[v * 2].v += tree[v].mark;tree[v * 2 + 1].v += tree[v].mark;
tree[v * 2].mark += tree[v].mark;tree[v * 2 + 1].mark += tree[v].mark;
}
void push(int v,int l,int r,int ll,int rr,int add) {
if (l <= ll && r >= rr) {
tree[v].v += add;
tree[v].mark += add;
}
else {
if (tree[v].mark) pushdown(v);
tree[v].mark = 0;
int mid = (ll + rr) >> 1;
if (l <= mid) push(v * 2,l,mid,ll,mid,add);
if (r > mid) push(v * 2 + 1,mid + 1,r,mid + 1,rr,add);
tree[v].v = max(tree[v * 2].v,tree[v * 2 + 1].v);
}
}
int find(int v,int l,int r,int ll,int rr) {
if (l <= ll && r >= rr) return tree[v].v;
else {
if (tree[v].mark) pushdown(v);
tree[v].mark = 0;
int ans = 0,mid = (ll + rr) >> 1;
if (l <= mid) ans = max(ans,find(v * 2,l,mid,ll,mid));
if (r > mid) ans = max(ans,find(v * 2 + 1,mid + 1,r,mid + 1,rr));
return ans;
}
}
signed main() {
cin >> n >> s >> m ;
for (int i = 1;i <= m;i++) {
int x,y,z;cin >> x >> y >> z ;
if (z + find(1,x,y - 1,1,n) <= s) {
push(1,x,y - 1,1,n,z);
cout << "T\n" ;
continue;
}
cout << "N\n" ;
}
}