// 题意: 给出n个人和m组数据,每组数据的形式为:s x y,
// 当s='D'时表示编号为x和y的人不在同一组; 当s='A'时要求你确定编号为x和y的人是否在同一组
#include <iostream> //并查集
using namespace std;
int p[100002],diff[100002],n,m; //diff[i]=j表示编号为j跟编号为i的人不在同一组
void init()
{
for(int i=1;i<=n;++i)
{
p[i]=i;
diff[i]=-1;
}
}
int find(int x)
{
return p[x]==x ? x : p[x]=find(p[x]);
}
void Union(int a,int b)
{
int x=find(a),y=find(b);
if(x!=y)
p[x]=y;
}
int main()
{
int cases;
char ch[2];
cin>>cases;
while(cases--)
{
cin>>n>>m;
init();
int a,b;
while(m--)
{
scanf("%s%d%d",ch,&a,&b);
if(ch[0]=='D')
{
if(diff[a]!=-1)
Union(b,diff[a]);
if(diff[b]!=-1)
Union(a,diff[b]);
diff[a]=b;diff[b]=a;
}
else
{
int fa=find(a),fb=find(b);
if(fa==fb)
printf("In the same gang.\n");
else if( diff[b]!=-1 && fa==find(diff[b]) )
printf("In different gangs.\n");
else
printf("Not sure yet.\n");
}
}
}
return 0;
}