#include<bits/stdc++.h>
#define il inline
#define ui unsigned int
#define ll long long
#define ull unsigned ll
#define lll __int128
#define db double
#define ldb long double
#define pii pair<int,int>
#define vi vector<int>
#define vpii vector<pii>
#define fir first
#define sec second
#define gc getchar
#define pc putchar
#define mst(a,x) memset(a,x,sizeof a)
#define pb push_back
#define lb lower_bound
#define ub upper_bound
#define pct __builtin_popcount
using namespace std;
const int N=11,M=N*N*N*N*N*N<<1,INF=0x3f3f3f3f,MOD=1e9+7,dx[]={0,1,0,-1},dy[]={1,0,-1,0};
const ll INFll=0x3f3f3f3f3f3f3f3f;
il int rd() {int x=0,f=1; char ch=gc(); while(ch<'0'||ch>'9') {if(ch=='-') f=-1; ch=gc();} while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=gc(); return x*f;}
il ll rdll() {ll x=0; int f=1; char ch=gc(); while(ch<'0'||ch>'9') {if(ch=='-') f=-1; ch=gc();} while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=gc(); return x*f;}
il void wr(int x) {if(x<-2147483647) {printf("-2147483648"); return;} if(x<0) {pc('-'),wr(-x); return;} if(x<10) {pc(x+'0'); return;} wr(x/10),pc(x%10+'0');}
il void wrll(ll x) {if(x<-9223372036854775807) return (void)printf("-9223372036854775808"); if(x<0) return pc('-'),wrll(-x); if(x<10) return (void)pc(x+'0'); wrll(x/10),pc(x%10+'0');}
il void wr(int x,char *s) {wr(x),printf("%s",s);}
il void wrll(ll x,char *s) {wrll(x),printf("%s",s);}
il int vmod(int x) {return x>=MOD?x-MOD:x;}
il int vadd(int x,int y) {return vmod(x+y);}
il int vsub(int x,int y) {return vmod(x-y+MOD);}
il int vmul(int x,int y) {return 1ll*x*y%MOD;}
il int qpow(int x,int y) {int res=1; for(;y;y>>=1,x=vmul(x,x)) if(y&1) res=vmul(res,x); return res;}
il void cadd(int &x,int y) {x=vmod(x+y);}
il void csub(int &x,int y) {x=vmod(x-y+MOD);}
il void cmax(int &x,int y) {x<y&&(x=y);}
il void cmin(int &x,int y) {x>y&&(x=y);}
char ch[N][N]; int n,m,ts,vis[M],vs[M],in[M],f[M],g[M],pw[4]; pii tr1,tr2,tb,QWQ; vi G[M];
struct QUE {int l,r,val[M]; void clr() {l=1,r=0;} bool ep() {return l>r;} void ps(int x) {val[++r]=x;} int pp() {return val[r--];}} q,qe;
struct STA {int w; pii r1,r2,b;};
il int hsh(pii p) {return (p.fir-1)*m+p.sec-1;}
il int Hsh(STA p) {return p.w*pw[3]+hsh(p.r1)*pw[2]+hsh(p.r2)*pw[1]+hsh(p.b)+1;}
il pii rhsh(int p) {return {p/m+1,p%m+1};}
il STA rHsh(int p) {p--; return {p/pw[3],rhsh(p/pw[2]%pw[1]),rhsh(p/pw[1]%pw[1]),rhsh(p%pw[1])};}
void clr() {q.clr(),qe.clr(),tr1={},pw[1]=n*m,pw[2]=n*n*m*m,pw[3]=n*n*n*m*m*m,mst(vis,0),mst(vs,0),mst(in,0),mst(f,0),mst(g,0); for(int j=1;j<=pw[3]<<1;j++) G[j].clear();}
void bfs() {
q.ps(ts),vis[ts]=1;
for(int u;!q.ep();) {
u=q.pp(); STA U=rHsh(u); pii r1=U.r1,r2=U.r2,b=U.b; if(b==r1||b==r2) {vs[u]=1,qe.ps(u); continue;}
int cw=U.w,ca=r1.fir,cb=r1.sec,cc=r2.fir,cd=r2.sec,ce=b.fir,cf=b.sec,f=0;
if(!cw) {
if(ce==1) {vs[u]=1,qe.ps(u); continue;}
for(int i=0,v;i<4;i++) {
int nx=ca+dx[i],ny=cb+dy[i]; pii nr1={nx,ny}; if(nx<1||nx>n||ny<1||ny>m||ch[nx][ny]=='#'||nr1==r2) continue;
v=Hsh({1,nr1,r2,b}),G[v].pb(u),in[u]++,f=1; if(!vis[v]) vis[v]=1,q.ps(v);
}
for(int i=0,v;i<4;i++) {
int nx=cc+dx[i],ny=cd+dy[i]; pii nr2={nx,ny}; if(nx<1||nx>n||ny<1||ny>m||ch[nx][ny]=='#'||nr2==r1) continue;
v=Hsh({1,r1,nr2,b}),G[v].pb(u),in[u]++,f=1; if(!vis[v]) vis[v]=1,q.ps(v);
}
} else {
for(int i=0,v;i<4;i++) if(i!=1) {
int nx=ce+dx[i],ny=cf+dy[i]; pii nb={nx,ny}; if(nx<1||nx>n||ny<1||ny>m||ch[nx][ny]=='#') continue;
v=Hsh({0,r1,r2,nb}),G[v].pb(u),in[u]++,f=1; if(!vis[v]) vis[v]=1,q.ps(v);
}
}
if(!f) vs[u]=1,qe.ps(u);
}
}
void topo() {
for(int u;!qe.ep();) {
u=qe.pp(); if(u==ts) break;
for(int v:G[u])
if(f[u]) {in[v]--; if(!f[v]) {cmax(g[v],g[u]+1); if(!in[v]) vs[v]=1,qe.ps(v);}}
else if(f[v]) in[v]--,cmin(g[v],g[u]+1); else f[v]=vs[v]=1,g[v]=g[u]+1,qe.ps(v);
}
}
void QwQ() {
n=rd(),m=rd(),clr(); for(int i=1;i<=n;i++) {scanf("%s",ch[i]+1); for(int j=1;j<=m;j++) (ch[i][j]=='O'?(!tr1.fir?tr1:tr2):ch[i][j]=='X'?tb:QWQ)={i,j};}
ts=Hsh(STA{0,tr1,tr2,tb}),bfs(),topo(); if(!vs[ts]) puts("Tie"); else printf(f[ts]?"Red ":"Black "),wr(g[ts],"\n");
}
signed main() {
rd(); int T=rd(); while(T--) QwQ();
}