#include<bits/stdc++.h>
using namespace std;
#include <bits/stdc++.h>
using namespace std;
class Node{
public:
int data;
Node* next;
Node(int d){
data = d;
next = NULL;
}
};
void insert(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);
}
void print(Node* head){
while(head != NULL){
cout<<head->data<<" ";
head = head->next;
}
cout<<endl;
}
void merge(Node*& h1, Node*& h2){
if(h1 == NULL){
h1 = h2;
return;
}else if(h2 == NULL){
h2 = h1;
return;
}
Node* t1 = h1;
Node* t2 = h2;
Node* ln = NULL;
if(t1->data < t2->data){
h1 = t1;
h2 = t1;
ln = t1;
t1 = t1->next;
}else{
h1 = t2;
h2 = t2;
ln = t2;
t2 = t2->next;
}
while(t1!=NULL && t2!=NULL){
if(t1->data < t2->data){
ln->next = t1;
ln = t1;
t1 = t1->next;
}else{
ln->next = t2;
ln = t2;
t2 = t2->next;
}
}
while(t1!=NULL){
ln->next = t1;
ln = t1;
t1 = t1->next;
}
while(t2!=NULL){
ln->next = t2;
ln = t2;
t2 = t2->next;
}
}
int main() {
int t;
cin>>t;
while(t){
int n1;
cin>>n1;
Node* h1 = NULL;
for(int i = 0; i < n1; i++){
int temp;
cin>>temp;
insert(h1,temp);
}
int n2;
cin>>n2;
Node* h2 = NULL;
for(int i = 0; i < n2; i++){
int temp;
cin>>temp;
insert(h2,temp);
}
merge(h1,h2);
print(h1);
t--;
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwogCmNsYXNzIE5vZGV7CglwdWJsaWM6CglpbnQgZGF0YTsKCU5vZGUqIG5leHQ7CiAKCU5vZGUoaW50IGQpewoJCWRhdGEgPSBkOwoJCW5leHQgPSBOVUxMOwoJfQp9OwogCnZvaWQgaW5zZXJ0KE5vZGUqJiBoZWFkLCBpbnQgZGF0YSl7CglpZihoZWFkID09IE5VTEwpewoJCWhlYWQgPSBuZXcgTm9kZShkYXRhKTsKCQlyZXR1cm47Cgl9CiAKCU5vZGUqIHRlbXAgPSBoZWFkOwoJd2hpbGUodGVtcC0+bmV4dCAhPSBOVUxMKXsKCQl0ZW1wID0gdGVtcC0+bmV4dDsKCX0KCXRlbXAtPm5leHQgPSBuZXcgTm9kZShkYXRhKTsKfQogCnZvaWQgcHJpbnQoTm9kZSogaGVhZCl7Cgl3aGlsZShoZWFkICE9IE5VTEwpewoJCWNvdXQ8PGhlYWQtPmRhdGE8PCIgIjsKCQloZWFkID0gaGVhZC0+bmV4dDsKCX0KCWNvdXQ8PGVuZGw7Cn0KIAp2b2lkIG1lcmdlKE5vZGUqJiBoMSwgTm9kZSomIGgyKXsKCQoJaWYoaDEgPT0gTlVMTCl7CgkJaDEgPSBoMjsKCQlyZXR1cm47Cgl9ZWxzZSBpZihoMiA9PSBOVUxMKXsKCQloMiA9IGgxOwoJCXJldHVybjsKCX0KCQoJTm9kZSogdDEgPSBoMTsKCU5vZGUqIHQyID0gaDI7CglOb2RlKiBsbiA9IE5VTEw7CglpZih0MS0+ZGF0YSA8IHQyLT5kYXRhKXsKCQloMSA9IHQxOwoJCWgyID0gdDE7CgkJbG4gPSB0MTsKCQl0MSA9IHQxLT5uZXh0OwoJfWVsc2V7CgkJaDEgPSB0MjsKCQloMiA9IHQyOwoJCWxuID0gdDI7CgkJdDIgPSB0Mi0+bmV4dDsKCX0KIAoJd2hpbGUodDEhPU5VTEwgJiYgdDIhPU5VTEwpewoJCWlmKHQxLT5kYXRhIDwgdDItPmRhdGEpewoJCQlsbi0+bmV4dCA9IHQxOwoJCQlsbiA9IHQxOwoJCQl0MSA9IHQxLT5uZXh0OwoJCX1lbHNlewoJCQlsbi0+bmV4dCA9IHQyOwoJCQlsbiA9IHQyOwoJCQl0MiA9IHQyLT5uZXh0OwoJCX0KCX0KIAoJd2hpbGUodDEhPU5VTEwpewoJCWxuLT5uZXh0ID0gdDE7CgkJbG4gPSB0MTsKCQl0MSA9IHQxLT5uZXh0OwoJfQogCgl3aGlsZSh0MiE9TlVMTCl7CgkJbG4tPm5leHQgPSB0MjsKCQlsbiA9IHQyOwoJCXQyID0gdDItPm5leHQ7Cgl9CiAKfQoKaW50IG1haW4oKSB7CiAgICBpbnQgdDsKICAgIGNpbj4+dDsKICAgIHdoaWxlKHQpewogICAgICAgIGludCBuMTsKICAgICAgICBjaW4+Pm4xOwogICAgICAgIE5vZGUqIGgxID0gTlVMTDsKICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgbjE7IGkrKyl7CiAgICAgICAgICAgIGludCB0ZW1wOwogICAgICAgICAgICBjaW4+PnRlbXA7CiAgICAgICAgICAgIGluc2VydChoMSx0ZW1wKTsKICAgICAgICB9CgogICAgICAgIGludCBuMjsKICAgICAgICBjaW4+Pm4yOwogICAgICAgIE5vZGUqIGgyID0gTlVMTDsKICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgbjI7IGkrKyl7CiAgICAgICAgICAgIGludCB0ZW1wOwogICAgICAgICAgICBjaW4+PnRlbXA7CiAgICAgICAgICAgIGluc2VydChoMix0ZW1wKTsKICAgICAgICB9CgogICAgICAgIG1lcmdlKGgxLGgyKTsKICAgICAgICBwcmludChoMSk7CgogICAgICAgIHQtLTsKICAgIH0KCXJldHVybiAwOwp9