#include <bits/stdc++.h>
using namespace std;
void swap(int* a,int* b)
{
int temp=*a;
*a=*b;
*b=temp;
}
int partition(int arr[],int l,int r)
{
int pivot=arr[l];
int j=l;
for(int i=l+1;i<=r;i++)
{
if(arr[i]<pivot)
{
j++;
swap(&arr[i],&arr[j]);
}
}
swap(&arr[l],&arr[j]);
return j;
}
void quicksort(int arr[],int l,int r)
{
if(l>=r) return;
int p=partition(arr,l,r);
quicksort(arr,l,p-1);
quicksort(arr,p+1,r);
}
int main() {
int t;
cin>>t;
while(t--)
{
int n,m;
cin>>n>>m;
int arr1[n],arr2[m],freq[m],rest[n],in=0,flag=0;
map<int,int> farr;
for(int i=0;i<n;i++)
{
cin>>arr1[i];
farr[arr1[i]]++;
}
for(int i=0;i<m;i++)
{
cin>>arr2[i];
// freq[i]=0;
while(farr[arr2[i]]--)
{
// cout<<farr[arr2[i]]<<",";
cout<<arr2[i]<<" ";
}
}
for(map<int,int>::iterator it=farr.begin();it!=farr.end();it++)
{
if(it->second>=0)
{
// cout<<it->first<<" "<<it->second<<endl;
while(it->second--)
rest[in++]=it->first;
}
}
quicksort(rest,0,in-1);
for(int i=0;i<in;i++)
{
cout<<rest[i]<<" ";
}
cout<<endl;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnZvaWQgc3dhcChpbnQqIGEsaW50KiBiKQp7CiAgICBpbnQgdGVtcD0qYTsKICAgICphPSpiOwogICAgKmI9dGVtcDsKfQppbnQgcGFydGl0aW9uKGludCBhcnJbXSxpbnQgbCxpbnQgcikKewogICAgaW50IHBpdm90PWFycltsXTsKICAgIGludCBqPWw7CiAgICAKICAgIGZvcihpbnQgaT1sKzE7aTw9cjtpKyspCiAgICB7CiAgICAgICAgaWYoYXJyW2ldPHBpdm90KQogICAgICAgIHsKICAgICAgICAgICAgaisrOwogICAgICAgICAgICBzd2FwKCZhcnJbaV0sJmFycltqXSk7CiAgICAgICAgfQogICAgfQogICAgCiAgICBzd2FwKCZhcnJbbF0sJmFycltqXSk7CiAgICByZXR1cm4gajsKfQp2b2lkIHF1aWNrc29ydChpbnQgYXJyW10saW50IGwsaW50IHIpCnsKICAgIGlmKGw+PXIpIHJldHVybjsKICAgIGludCBwPXBhcnRpdGlvbihhcnIsbCxyKTsKICAgIHF1aWNrc29ydChhcnIsbCxwLTEpOwogICAgcXVpY2tzb3J0KGFycixwKzEscik7Cn0KaW50IG1haW4oKSB7CglpbnQgdDsKICAgIGNpbj4+dDsKICAgIHdoaWxlKHQtLSkKICAgIHsKICAgICAgICBpbnQgbixtOwogICAgICAgIGNpbj4+bj4+bTsKICAgICAgICBpbnQgYXJyMVtuXSxhcnIyW21dLGZyZXFbbV0scmVzdFtuXSxpbj0wLGZsYWc9MDsKICAgICAgICBtYXA8aW50LGludD4gZmFycjsKICAgICAgICBmb3IoaW50IGk9MDtpPG47aSsrKQogICAgICAgIHsKICAgICAgICAgICAgY2luPj5hcnIxW2ldOwogICAgICAgICAgICBmYXJyW2FycjFbaV1dKys7CiAgICAgICAgfQogICAgICAgIGZvcihpbnQgaT0wO2k8bTtpKyspCiAgICAgICAgewogICAgICAgICAgICBjaW4+PmFycjJbaV07CiAgICAgICAgICAgIC8vIGZyZXFbaV09MDsKICAgICAgICAgICAgd2hpbGUoZmFyclthcnIyW2ldXS0tKQogICAgICAgICAgICB7CiAgICAgICAgICAgIAkvLyBjb3V0PDxmYXJyW2FycjJbaV1dPDwiLCI7CiAgICAgICAgICAgICAgICBjb3V0PDxhcnIyW2ldPDwiICI7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZm9yKG1hcDxpbnQsaW50Pjo6aXRlcmF0b3IgaXQ9ZmFyci5iZWdpbigpO2l0IT1mYXJyLmVuZCgpO2l0KyspCiAgICAgICAgewogICAgICAgICAgICBpZihpdC0+c2Vjb25kPj0wKQogICAgICAgICAgICB7CiAgICAgICAgICAgIAkvLyBjb3V0PDxpdC0+Zmlyc3Q8PCIgIjw8aXQtPnNlY29uZDw8ZW5kbDsKICAgICAgICAgICAgCXdoaWxlKGl0LT5zZWNvbmQtLSkKICAgICAgICAgICAgICAgIAlyZXN0W2luKytdPWl0LT5maXJzdDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAKICAgICAgICBxdWlja3NvcnQocmVzdCwwLGluLTEpOwogICAgICAgIAogICAgICAgIGZvcihpbnQgaT0wO2k8aW47aSsrKQogICAgICAgIHsKICAgICAgICAgICAgY291dDw8cmVzdFtpXTw8IiAiOwogICAgICAgIH0KICAgICAgICBjb3V0PDxlbmRsOwogICAgfQogICAgCglyZXR1cm4gMDsKfQ==