#include <iostream>
#include <map>
#include <vector>
#include <algorithm>
#include <functional>
using namespace std;
//英语 看博友程序
bool cmp(int a,int b)
{
if(a%10!=b%10)
{
return a%10<b%10;
}else
{
return a<b;
}
}
int main()
{
int T;
cin>>T;
for(int o=0;o<T;o++)
{
int n,m;
cin>>n>>m;
vector<int> va;
va.clear();
vector<int> vb;
vb.clear();
for(int i=0;i<n;i++)
{
int a;
cin>>a;
va.push_back(a);
}
for(int i=0;i<m;i++)
{
int a;
cin>>a;
vb.push_back(a);
}
sort(va.begin(),va.end(),greater<int>());
sort(vb.begin(),vb.end(),greater<int>());
//unique(va.begin(),va.end());//没删除多余元素
//unique(vb.begin(),vb.end());
for(int i=(va.size()-1);i>0;i--)
{
if(va[i]==va[i-1])
{
va.erase(va.begin()+i);
}
}
for(int i=(vb.size()-1);i>0;i--)
{
if(vb[i]==vb[i-1])
{
vb.erase(vb.begin()+i);
}
}
/*
for(int i=0;i<va.size();i++)
{
cout<<va[i]<<" ";
}
cout<<endl;
for(int i=0;i<vb.size();i++)
{
cout<<vb[i]<<" ";
}
cout<<endl<<endl;*/
int zd=0;
int wza=0;
for(int i=0;i<va.size();i++)
{
for(int j=0;j<vb.size();j++)
{
if(va[i]==vb[j])
{
int shu=0;
for(int k=0;(k+i)<va.size() && (k+j)<vb.size();k++)
{
if(va[i+k]==vb[j+k])
{
shu++;
}else
{
break;
}
}
if(shu>zd)
{
zd=shu;
wza=i;
}
}
}
}
vector<int> ve;
ve.clear();
for(int i=0;i<zd;i++)
{
ve.push_back(va[i+wza]);
}
if(ve.size()==0)
{
cout<<"NONE"<<endl;
}else
{
sort(ve.begin(),ve.end(),greater<int>());
for(int i=0;i<ve.size();i++)
{
cout<<ve[i]<<" ";
}
cout<<endl;
sort(ve.begin(),ve.end(),cmp);
for(int i=0;i<ve.size();i++)
{
cout<<ve[i]<<" ";
}
cout<<endl;
}
}
return 0;
}