#include <iostream>
#include <cstring>
#include <vector>
#include <cstdio>
#include <algorithm>
using namespace std;
int func(string a,string s)
{
int l=a.size(),i;
vector<char>c,c2;
for(i=0; i<l; i++)
{
if(isalpha(a[i]))
{
c.push_back(a[i]);
}
}
sort(c.begin(),c.end());
int l2=s.size();
for(i=0; i<l2; i++)
{
if(isalpha(s[i]))
{
c2.push_back(s[i]);
}
}
sort(c2.begin(),c2.end());
if(c==c2)
{
return 1;
}
else
{
return 0;
}
}
int main()
{
int t,i,j,k,g;
string s;
cin>>t;
getchar();
cout<<endl;
for(i=1; i<=t; i++)
{
vector<string>a,ko;
string t1,t2,t3;
while(getline(cin,s))
{
if(s=="")
{
break;
}
a.push_back(s);
}
for(j=0; j<a.size(); j++)
{
for(k=j+1; k<a.size(); k++)
{
g=func(a[j],a[k]);
if(g==1)
{
t1=a[j];
t2=a[k];
if(t1>t2)
{
t3=t1;
t1=t2;
t2=t3;
}
ko.push_back(t1 + " = "+t2);
}
}
}
sort(ko.begin(),ko.end());
for(int b=0; b<ko.size(); b++)
{
cout<<ko[b]<<endl;
}
cout<<endl;
}
return 0;
}
ICAgICNpbmNsdWRlIDxpb3N0cmVhbT4KICAgICNpbmNsdWRlIDxjc3RyaW5nPgogICAgI2luY2x1ZGUgPHZlY3Rvcj4KICAgICNpbmNsdWRlIDxjc3RkaW8+CiAgICAjaW5jbHVkZSA8YWxnb3JpdGhtPgoKICAgIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CgogICAgaW50IGZ1bmMoc3RyaW5nIGEsc3RyaW5nIHMpCiAgICB7CiAgICAgICAgaW50IGw9YS5zaXplKCksaTsKICAgICAgICB2ZWN0b3I8Y2hhcj5jLGMyOwoKICAgICAgICBmb3IoaT0wOyBpPGw7IGkrKykKICAgICAgICB7CiAgICAgICAgICAgIGlmKGlzYWxwaGEoYVtpXSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGMucHVzaF9iYWNrKGFbaV0pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHNvcnQoYy5iZWdpbigpLGMuZW5kKCkpOwoKICAgICAgICBpbnQgbDI9cy5zaXplKCk7CgogICAgICAgIGZvcihpPTA7IGk8bDI7IGkrKykKICAgICAgICB7CiAgICAgICAgICAgIGlmKGlzYWxwaGEoc1tpXSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGMyLnB1c2hfYmFjayhzW2ldKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBzb3J0KGMyLmJlZ2luKCksYzIuZW5kKCkpOwoKICAgICAgICBpZihjPT1jMikKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgIH0KCiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgfQogICAgfQoKICAgIGludCBtYWluKCkKICAgIHsKICAgICAgICBpbnQgdCxpLGosayxnOwogICAgICAgIHN0cmluZyBzOwoKICAgICAgICBjaW4+PnQ7CiAgICAgICAgZ2V0Y2hhcigpOwogICAgICAgIGNvdXQ8PGVuZGw7CgogICAgICAgIGZvcihpPTE7IGk8PXQ7IGkrKykKICAgICAgICB7CiAgICAgICAgICAgIHZlY3RvcjxzdHJpbmc+YSxrbzsKICAgICAgICAgICAgc3RyaW5nIHQxLHQyLHQzOwoKICAgICAgICAgICAgd2hpbGUoZ2V0bGluZShjaW4scykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmKHM9PSIiKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYS5wdXNoX2JhY2socyk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGZvcihqPTA7IGo8YS5zaXplKCk7IGorKykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZm9yKGs9aisxOyBrPGEuc2l6ZSgpOyBrKyspCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgZz1mdW5jKGFbal0sYVtrXSk7CgogICAgICAgICAgICAgICAgICAgIGlmKGc9PTEpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICB0MT1hW2pdOwogICAgICAgICAgICAgICAgICAgICAgICB0Mj1hW2tdOwoKICAgICAgICAgICAgICAgICAgICAgICAgaWYodDE+dDIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQzPXQxOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdDE9dDI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0Mj10MzsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBrby5wdXNoX2JhY2sodDEgKyAiID0gIit0Mik7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBzb3J0KGtvLmJlZ2luKCksa28uZW5kKCkpOwoKICAgICAgICAgICAgZm9yKGludCBiPTA7IGI8a28uc2l6ZSgpOyBiKyspCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNvdXQ8PGtvW2JdPDxlbmRsOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvdXQ8PGVuZGw7CiAgICAgICAgfQogICAgICAgIHJldHVybiAwOwogICAgfQ==