#include<iostream>
using namespace std;
class node{
public:
node *next;
int data;
node(int d){
next = NULL;
data = d;
}
};
void insertAtTail(node *&head, int data){
if(head==NULL){
head= new node(data);
return;
}
node *temp = head;
while(temp->next!=NULL){
temp = temp->next;
}
temp->next = new node(data);
return;
}
node *buildInput(node *&head, int n){
int data;
for(int i=0;i<n;i++){
cin>>data;
insertAtTail(head,data);
}
return head;
}
void print(node *head){
while(head !=NULL){
cout<< head->data<<" ";
head = head->next;
}
}
node *merge(node *a, node *b){
if(a==NULL)
return b;
else if(b==NULL){
return a;
}
node *c;
if(a->data < b->data){
c=a;
c->next = merge(a->next,b);
}
else{
c=b;
c->next = merge(a,b->next);
}
return c;
}
int main(){
node *head = NULL;
int t,n1,n2;
cin>>t;
for(int i=0;i<t;i++){
cin>>n1;
node *head1 = buildInput(head,n1);
cin>>n2;
node *head2 = buildInput(head,n2);
node *ans = merge(head1,head2);
print(ans);
}
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNsYXNzIG5vZGV7CnB1YmxpYzoKICAgIG5vZGUgKm5leHQ7CiAgICBpbnQgZGF0YTsKICAgIG5vZGUoaW50IGQpewogICAgICAgIG5leHQgPSAgTlVMTDsKICAgICAgICBkYXRhID0gZDsKICAgIH0KfTsKdm9pZCBpbnNlcnRBdFRhaWwobm9kZSAqJmhlYWQsIGludCBkYXRhKXsKICAgIGlmKGhlYWQ9PU5VTEwpewogICAgICAgIGhlYWQ9IG5ldyBub2RlKGRhdGEpOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIG5vZGUgKnRlbXAgPSBoZWFkOwogICAgd2hpbGUodGVtcC0+bmV4dCE9TlVMTCl7CiAgICAgICB0ZW1wID0gdGVtcC0+bmV4dDsKICAgIH0KICAgIHRlbXAtPm5leHQgPSBuZXcgbm9kZShkYXRhKTsKICAgIHJldHVybjsKfQpub2RlICpidWlsZElucHV0KG5vZGUgKiZoZWFkLCBpbnQgbil7CiAgICBpbnQgZGF0YTsKICAgIGZvcihpbnQgaT0wO2k8bjtpKyspewogICAgICAgIGNpbj4+ZGF0YTsKICAgICAgICBpbnNlcnRBdFRhaWwoaGVhZCxkYXRhKTsKICAgIH0KICAgIHJldHVybiBoZWFkOwp9CnZvaWQgcHJpbnQobm9kZSAqaGVhZCl7CiAgICB3aGlsZShoZWFkICE9TlVMTCl7CiAgICAgICAgY291dDw8IGhlYWQtPmRhdGE8PCIgIjsKICAgICAgICBoZWFkID0gaGVhZC0+bmV4dDsKICAgIH0KfQpub2RlICptZXJnZShub2RlICphLCBub2RlICpiKXsKICAgIGlmKGE9PU5VTEwpCiAgICAgICAgcmV0dXJuIGI7CiAgICBlbHNlIGlmKGI9PU5VTEwpewogICAgICAgIHJldHVybiBhOwogICAgfQogICAgbm9kZSAqYzsKICAgIGlmKGEtPmRhdGEgPCBiLT5kYXRhKXsKICAgICAgICBjPWE7CiAgICAgICAgYy0+bmV4dCA9IG1lcmdlKGEtPm5leHQsYik7CiAgICB9CiAgICBlbHNlewogICAgICAgIGM9YjsKICAgICAgICBjLT5uZXh0ID0gbWVyZ2UoYSxiLT5uZXh0KTsKICAgIH0KICAgIHJldHVybiBjOwp9CmludCBtYWluKCl7Cm5vZGUgKmhlYWQgPSBOVUxMOwogICAgaW50IHQsbjEsbjI7CiAgICBjaW4+PnQ7CgogICAgZm9yKGludCBpPTA7aTx0O2krKyl7CiAgICAgICAgY2luPj5uMTsKICAgICAgICBub2RlICpoZWFkMSA9IGJ1aWxkSW5wdXQoaGVhZCxuMSk7CiAgICAgICAgY2luPj5uMjsKICAgICAgICBub2RlICpoZWFkMiA9IGJ1aWxkSW5wdXQoaGVhZCxuMik7CgogICAgICAgIG5vZGUgKmFucyA9IG1lcmdlKGhlYWQxLGhlYWQyKTsKICAgICAgICBwcmludChhbnMpOwogICAgfQoKICByZXR1cm4gMDsKfQo=