/*
找欧拉路,先判断图是否连通,
*/
#include<cstdio>
#include<cstring>#include<cstdlib>
int numf[30],nume[30],vis[30];
int map[30][30];
int dfs(int x)
{
vis[x]=0;
for(int i=0; i < 26; i++)
if(vis[i]&&map[x][i])
dfs(i);
}
int main()
{
int t,n,pf;
char a[1100];
scanf("%d",&t);
while(t--)
{
memset(numf,0,sizeof(numf));
memset(nume,0,sizeof(nume));
memset(vis,0,sizeof(vis));
scanf("%d",&n);
getchar();
for(int i = 0; i < n; i++)
{
gets(a);
int l = strlen(a);
int x = a[0]-'a';
int y = a[l-1]-'a';
numf[x]++;
nume[y]++;
map[x][y]++;
vis[x]=1;
vis[y]=1;
pf=x;
}
int flag=0,pj=0;
for(int i = 0; i < 26; i++)
{
if(abs(numf[i]-nume[i])==1)
{
if(numf[i]>nume[i])
pf = i;
pj++;
}
else if(numf[i]!=nume[i])
{
flag=1;
break;
}
}
if(pj!=2&&pj!=0) flag=1;
dfs(pf);
int mx=0;
for(int i = 0; i < 26; i++)
mx+=vis[i];
if(mx||flag)
printf("The door cannot be opened.\n");
else
printf("Ordering is possible.\n");
}
return 0;
}