# include <iostream>
# include <cstdio>
using namespace std;
const int N = 50010 ;
struct Node
{
int l, r, sum;
int lazy;
} tr[ N<< 2 ] ;
void pushup ( int u)
{
tr[ u] . sum= tr[ u<< 1 ] . sum+ tr[ u<< 1 | 1 ] . sum;
}
void build ( int u, int l, int r)
{
if ( l== r) tr[ u] = ( Node) { l, r, 0 , - 1 } ;
else
{
tr[ u] = ( Node) { l, r, 0 , - 1 } ;
int mid= ( l+ r) >> 1 ;
build ( u<< 1 , l, mid) ;
build ( u<< 1 | 1 , mid+ 1 , r) ;
pushup ( u) ;
}
}
void pushdown ( int u)
{
Node & root= tr[ u] , & left= tr[ u<< 1 ] , & right= tr[ u<< 1 | 1 ] ;
if ( ~ root. lazy)
{
left. sum= root. lazy* ( left. r- left. l+ 1 ) ;
right. sum= root. lazy* ( right. r- right. l+ 1 ) ;
left. lazy= right. lazy= root. lazy;
root. lazy= - 1 ;
}
}
void modify ( int u, int l, int r, int v)
{
if ( tr[ u] . l>= l&& tr[ u] . r<= r)
{
tr[ u] . sum= ( tr[ u] . r- tr[ u] . l+ 1 ) * v;
tr[ u] . lazy= v;
}
else
{
pushdown ( u) ;
int mid= ( tr[ u] . l+ tr[ u] . r) >> 1 ;
if ( l<= mid) modify ( u<< 1 , l, r, v) ;
if ( r> mid) modify ( u<< 1 | 1 , l, r, v) ;
pushup ( u) ;
}
}
int query ( int u, int l, int r)
{
if ( tr[ u] . l>= l&& tr[ u] . r<= r) return tr[ u] . sum;
else
{
pushdown ( u) ;
int mid= ( tr[ u] . l+ tr[ u] . r) >> 1 ;
int res= 0 ;
if ( l<= mid) res+= query ( u<< 1 , l, r) ;
if ( r> mid) res+= query ( u<< 1 | 1 , l, r) ;
return res;
}
}
int main ( )
{
int T; scanf ( "%d" , & T) ;
while ( T-- )
{
int n, m; scanf ( "%d%d" , & n, & m) ;
build ( 1 , 1 , n) ;
while ( m-- )
{
int op, a, b; scanf ( "%d%d%d" , & op, & a, & b) ;
a++ , b++ ;
if ( op== 2 )
{
printf ( "%d\n" , query ( 1 , a, b) ) ;
modify ( 1 , a, b, 0 ) ;
}
if ( op== 1 )
{
int l= a, r= n;
while ( l< r)
{
int mid= ( l+ r) >> 1 ;
if ( mid- a+ 1 - query ( 1 , a, mid) > 0 ) r= mid;
else l= mid+ 1 ;
}
if ( l- a+ 1 <= query ( 1 , a, l) )
{
puts ( "Can not put any one." ) ;
continue ;
}
b= min ( b, n- a+ 1 - query ( 1 , a, n) + 1 ) ;
int st= l;
l= a, r= n;
while ( l< r)
{
int mid= ( l+ r) >> 1 ;
if ( mid- a+ 1 - query ( 1 , a, mid) >= b- 1 ) r= mid;
else l= mid+ 1 ;
}
int ed= l;
printf ( "%d %d\n" , st- 1 , ed- 1 ) ;
modify ( 1 , st, ed, 1 ) ;
}
}
puts ( "" ) ;
}
return 0 ;
}