#include<bits/stdc++.h>
using namespace std;
vector<char> letter[5];
string ans;
int cur = 0;
bool dfs(int k,string s,int i){
if(k==cur){
cout << s << endl;
return true;
}
if(i>4)
return false;
for (int j = 0;j<letter[i].size();j++){
if(i==4)
cur++;
if(dfs(k,s+letter[i][j], i + 1))
return true;
}
return false;
}
void solve(){
int k;
cin >> k;
vector<string> s1, s2;
for (int i = 0; i < 5;i++){
letter[i].clear();
}
for (int i = 0; i < 6; i++)
{
string s;
cin >> s;
s1.push_back(s);
}
for (int i = 0; i < 6;i++){
string s;
cin>>s;
s2.push_back(s);
}
map<char, int> mp;
for (int i = 0; i < 5;i++){
for (int j = 0; j < 6;j++){
mp[s1[j][i]]++;
mp[s2[j][i]]++;
}
for(auto&p:mp){
if(p.second>=2){
letter[i].push_back(p.first);
}
}
sort(letter[i].begin(), letter[i].end());
mp.clear();
}
cur = 0;
string s;
if(!dfs(k,s,0))
cout << "NO" << endl;
}
int main()
{
ios::sync_with_stdio(false);
int t=1;
cin >> t;
while(t--)
{
solve();
}
system("pause");
return 0;
}