#include <iostream>
#include <set>
#include <algorithm>
#include <iterator>
#include <vector>
using namespace std;
string s1[6],s2[6];
string s1sol(5,0),s2sol(5,0);
int in,k;
void bt(int depth)
{
if(depth == 5)
{
++in;
s1sol[5] = 0;
if(in == k)
cout<<s1sol<<endl;
return;
}
for(int i=0,j=0;i<6 && j<6;++i,++j)
{
s1sol[depth] = s1[i][depth];
s2sol[depth] = s2[j][depth];
if(s1sol[depth]!=s2sol[depth])
{
if(s1sol[depth]<s2sol[depth])
{
int tmp=i;
while(i<6 && s1[i][depth]!=s2sol[depth])
++i;
if(i == 6)
{
i=tmp;
continue;
}
else
s1sol[depth] = s2sol[depth];
}
else
{
int tmp = j;
while(j<6&&s2[j][depth]!=s1sol[depth])
++j;
if(j == 6)
{
j=tmp;
continue;
}
else
s2sol[depth] = s1sol[depth];
}
}
bt(depth+1);
}
}
int main()
{
int t;
cin>>t;
while(t--)
{
in =0;
cin>>k;
for(int i=0;i<6;++i)
{
s1[i].clear();
cin>>s1[i];
}
for(int i=0;i<6;++i)
{
s2[i].clear();
cin>>s2[i];
}
for(int i=0;i<5;++i)
{
for(int j=0;j<6;++j)
for(int k=0;k<5;++k)
{
if(s1[k][i]>s1[k+1][i])
{
char temp = s1[k][i];
s1[k][i] = s1[k+1][i];
s1[k+1][i] = temp;
}
if(s2[k][i]>s2[k+1][i])
{
char temp = s2[k][i];
s2[k][i] = s2[k+1][i];
s2[k+1][i] = temp;
}
}
}
bt(0);
if(in<k)
cout<<"NO"<<endl;
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c2V0PgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8aXRlcmF0b3I+CiNpbmNsdWRlIDx2ZWN0b3I+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnN0cmluZyBzMVs2XSxzMls2XTsKc3RyaW5nIHMxc29sKDUsMCksczJzb2woNSwwKTsKaW50IGluLGs7CnZvaWQgYnQoaW50IGRlcHRoKQp7CiAgICAKCWlmKGRlcHRoID09IDUpCgl7CgkJKytpbjsKCQlzMXNvbFs1XSA9IDA7CgkJaWYoaW4gPT0gaykKCQkJY291dDw8czFzb2w8PGVuZGw7CgkJcmV0dXJuOwoJCQoJfQoJZm9yKGludCBpPTAsaj0wO2k8NiAmJiBqPDY7KytpLCsraikKCXsKCQlzMXNvbFtkZXB0aF0gPSBzMVtpXVtkZXB0aF07CgkJczJzb2xbZGVwdGhdID0gczJbal1bZGVwdGhdOwoJCQoJCWlmKHMxc29sW2RlcHRoXSE9czJzb2xbZGVwdGhdKQoJCXsKCQkJaWYoczFzb2xbZGVwdGhdPHMyc29sW2RlcHRoXSkKCQkJewkKCQkJCWludCB0bXA9aTsKCQkJCXdoaWxlKGk8NiAmJiBzMVtpXVtkZXB0aF0hPXMyc29sW2RlcHRoXSkKCQkJCQkrK2k7CgkJCQlpZihpID09IDYpCgkJCQl7CgkJCQkJaT10bXA7CgkJCQkJY29udGludWU7CgkJCQkKCQkJCX0KCQkJCWVsc2UKCQkJCQlzMXNvbFtkZXB0aF0gPSBzMnNvbFtkZXB0aF07CgkJCX0KCQkJZWxzZQoJCQl7CQoJCQkJaW50IHRtcCA9IGo7CgkJCQl3aGlsZShqPDYmJnMyW2pdW2RlcHRoXSE9czFzb2xbZGVwdGhdKQoJCQkJCSsrajsKCQkJCWlmKGogPT0gNikKCQkJCXsKCQkJCQlqPXRtcDsKCQkJCQljb250aW51ZTsKCQkJCX0KCQkJCWVsc2UKCQkJCQlzMnNvbFtkZXB0aF0gPSBzMXNvbFtkZXB0aF07CgkJCX0KCQl9CQoJCQlidChkZXB0aCsxKTsKCQkJCgkKCX0KCn0KCmludCBtYWluKCkKewoJaW50IHQ7CgljaW4+PnQ7Cgl3aGlsZSh0LS0pCgl7CgkJaW4gPTA7CgkJY2luPj5rOwoJCWZvcihpbnQgaT0wO2k8NjsrK2kpCgkJewoJCQlzMVtpXS5jbGVhcigpOwoJCQljaW4+PnMxW2ldOwoJCX0KCQlmb3IoaW50IGk9MDtpPDY7KytpKQoJCXsKCQkJczJbaV0uY2xlYXIoKTsKCQkJY2luPj5zMltpXTsKCQl9CgkJZm9yKGludCBpPTA7aTw1OysraSkKCQl7CQoJCQlmb3IoaW50IGo9MDtqPDY7KytqKQoJCQkJZm9yKGludCBrPTA7azw1OysraykKCQkJCXsJCgkJCQkJaWYoczFba11baV0+czFbaysxXVtpXSkKCQkJCQl7CgkJCQkJCWNoYXIgdGVtcCA9IHMxW2tdW2ldOwoJCQkJCQlzMVtrXVtpXSA9IHMxW2srMV1baV07CgkJCQkJCXMxW2srMV1baV0gPSB0ZW1wOwoJCQkJCX0KCQkJCQlpZihzMltrXVtpXT5zMltrKzFdW2ldKQoJCQkJCXsKCQkJCQkJY2hhciB0ZW1wID0gczJba11baV07CgkJCQkJCXMyW2tdW2ldID0gczJbaysxXVtpXTsKCQkJCQkJczJbaysxXVtpXSA9IHRlbXA7CgkJCQkJCgkJCQkJfQoJCQoJCQkJfQoJCQoJCX0KCQkKCQlidCgwKTsKCWlmKGluPGspCgkJY291dDw8Ik5PIjw8ZW5kbDsKCX0KfQo=