#include<bits/stdc++.h>
#define FILE "read"
using namespace std;
const int MAXN=(int)1e3,D=50;
int a[MAXN+D],b[MAXN+D],check[MAXN+D],sg[105][105];
namespace INIT{
char buf[1<<15],*fs,*ft;
inline char getc(){return (fs==ft&&(ft=(fs=buf)+fread(buf,1,1<<15,stdin),fs==ft))?0:*fs++;}
inline int read(){
int x=0,f=1; char ch=getc();
while(!isdigit(ch)) {if(ch=='-') f=-1; ch=getc();}
while(isdigit(ch)) {x=x*10+ch-'0'; ch=getc();}
return x*f;
}
}using namespace INIT;
void pre(){
for(int i=0;i<=99;++i) for(int j=0;j<=99;++j){
if(i==j||i*j==0) continue;
memset(check,0,sizeof(check));
for(int k=1;k<min(i,j);++k)check[sg[i-k][j-k]]=1;
for(int k=1;k<i;++k)if(i-k!=j)check[sg[i-k][j]]=1;
for(int k=1;k<j;++k)if(i!=j-k)check[sg[i][j-k]]=1;
for(int k=0;k<=MAXN;++k)if(!check[k]){sg[i][j]=k;break;}
}
}
void solve(){
int n=read(),ans(0);
for(int i=1;i<=n;++i) a[i]=read(),b[i]=read();
for(int i=1;i<=n;++i) ans^=sg[a[i]][b[i]];
puts(ans?"^o^":"T_T");
}
int main(){
freopen(FILE".in","r",stdin);
freopen(FILE".out","w",stdout);
pre();
for(int T=read();T;--T) solve();
return 0;
}