#include <iostream>
#include <bits/stdc++.h>
#define maxn 27
using namespace std;
int n;
bool visited[maxn];
int G[maxn][maxn];
int in[maxn],out[maxn];
void dfs(int u)
{
visited[u] =1;
for(int i = 0;i<26;i++)
{
if(!visited[i]&&G[u][i])
{
dfs(i);
}
}
}
int main()
{
int T;
cin>>T;
while(T--)
{
int n,a,b;
string s;
cin>>n;
memset(visited,1,sizeof(visited));
//cout<<visited[4]<<endl;
memset(in,0,sizeof(in));
memset(out,0,sizeof(out));
memset(G,0,sizeof(G));
for(int i = 0;i<n;i++)
{
cin>>s;
a = s[0]-'a';
b = s[s.length()-1]-'a';
in[a]++;
out[b]++;
visited[a] = 0;
visited[b] = 0;
G[a][b] = 1;
}
int cnt1 = 0;int cnt2 = 0;int cnt3 = 0;
int flag = 1;
int p = 0;
for(int i = 0;i<26;i++)
{
if(in[i]!=out[i])
{
if(in[i] == out[i]+1)
{
cnt1++;
p = i;
}
else if(in[i]+1 == out[i])
{
cnt2++;
}
else
{
cnt3++;
break;
}
}
}
if(cnt3) flag = 0;
//cout<<flag<<endl;
if(!((cnt1==1 && cnt2==1) || (!cnt1&&!cnt2)) )flag = 0;
//cout<<flag<<endl;
dfs(p);
for(int i = 0;i<26;i++)
{
if(!visited[i])
{
flag = 0;
break;
}
}
if(!flag) cout<<"The door cannot be opened."<<endl;
else cout<<"Ordering is possible."<<endl;
}
return 0;
}
/**
3
2
acm
ibm
3
acm
malform
mouse
2
ok
ok
**/