#include <bits/stdc++.h>
using namespace std;
int lmiast,lmiejsc,lzgloszen,a,b,n,p,q,tym;
vector<int> V[3],M,zmiana;
#define show if(0)
void cl(){
V[0].clear();
V[1].clear();
V[2].clear();
M.clear();
zmiana.clear();
}
void add(int v){
if(V[1][v]>=a&&V[2][v]<=b){
show
cout<<"v: "<<v<<endl;
V[0][v]+=n;
M[v]+=n;
while(v>1){
if(M[v]+V[0][v/2]>M[v/2])
zmiana[v/2]+=M[v]+V[0][v/2]-M[v/2];
M[v/2]=max(M[v]+V[0][v/2],M[v/2]);
v/=2;
}
//M[v/4]=M[v/2]+V[0][v/4];
return;
}
if(V[1][v]==V[2][v])
return;
if((V[1][v]+V[2][v])/2>=a&&V[1][v]<=b)
add(2*v);
if(V[2][v]>=a&&(V[1][v]+V[2][v])/2+1<=b)
add(2*v+1);
}
void addm(int v){
if(V[1][v]>=a&&V[2][v]<=b){
show
cout<<"addm v: "<<v<<endl;
V[0][v]-=n;
M[v]-=n;
while(v>1){
if(M[v/2]>(max(M[(v/2)*2+1],M[(v/2)*2])+V[0][v/2]))
M[v/2]-=n;/*
if(zmiana[v/2]>0){
M[v/2]-=zmiana[v/2];
}*/
// M[v/2]=max(M[v]+V[0][v/2],M[v/2]);
v/=2;
}
//M[v/4]=M[v/2]+V[0][v/4];
return;
}
if(V[1][v]==V[2][v])
return;
if((V[1][v]+V[2][v])/2>=a&&V[1][v]<=b)
addm(2*v);
if(V[2][v]>=a&&(V[1][v]+V[2][v])/2+1<=b)
addm(2*v+1);
}
void program(){
cin>>lmiast>>lmiejsc>>lzgloszen;
lmiast--;
cl();
int pot=1;
while(pot<lmiast)
pot*=2;
show
cout<<"pot: "<<pot<<endl;
p=pot;
q=2*pot-1;
V[0].push_back(-1);
V[1].push_back(-1);
V[2].push_back(-1);
M.push_back(-1);
zmiana.push_back(-1);
tym=(q-p+1);
for(int i=1;i<2*pot;i++){
M.push_back(0);
zmiana.push_back(0);
V[0].push_back(0);
V[1].push_back(p);
V[2].push_back(q);
if(q==2*pot-1){
tym/=2;
show
cout<<"zmniejszenie "<<tym<<endl;
p=pot;
q=p+tym-1;
}
else{
show
cout<<"nie"<<tym<<endl;
p=q+1;
q=p+tym-1;
}
}
show{
for(int i=1;i<2*pot;i++){
cout<<V[0][i]<<" "<<V[1][i]<<" "<<V[2][i]<<endl;
}
}
for(int i=0;i<lzgloszen;i++){
cin>>a>>b>>n;
b--;
a+=pot-1;
b+=pot-1;/*
for(int k=0;k<2*pot;k++){
V[0][k]=0;
}*/
zmiana.clear();
add(1);
if(M[1]>lmiejsc){
addm(1);
cout<<"N"<<endl;
}
else
cout<<"T"<<endl;
show{
cout<<"po zgloszeniu nr: "<<i+1<<endl;
for(int k=1;k<2*pot;k++){
cout<<M[k]<<" "<<V[1][k]<<" "<<V[2][k]<<" bazowe ";
cout<<V[0][k]<<" "<<V[1][k]<<" "<<V[2][k]<<endl;
}
}
}
}
int main(){
int dane;
cin>>dane;
while(dane--){
program();
}
return 0;
}
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}