include <bits/stdc++.h>
using namespace std;
class node
{
public:
int data;
node *next;
node(int d)
{
data = d;
next = NULL;
}
};
void InsertAtEnd(node *&root, int data)
{
if (root == NULL)
{
root = new node(data);
return;
}
node *temp = root;
while (temp->next != NULL)
{
temp = temp->next;
}
temp->next = new node(data);
return;
}
node *mergeNodes(node *l1, node *l2)
{
node *l = NULL;
if (l1->data <= l2->data)
{
l = l1;
l1 = l1->next;
l->next = NULL;
}
else
{
l = l2;
l2 = l2->next;
l->next = NULL;
}
node *temp = l;
while (l1 != NULL && l2 != NULL)
{
if (l1->data <= l2->data)
{
temp->next = l1;
l1 = l1->next;
temp = temp->next;
temp->next = NULL;
}
else
{
temp->next = l2;
l2 = l2->next;
temp = temp->next;
temp->next = NULL;
}
}
if (l1 == NULL && l2 != NULL)
{
temp->next = l2;
}
else if (l1 != NULL && l2 == NULL)
{
temp->next = l1;
}
return l;
}
void print(node *root)
{
if (root == NULL)
{
return;
}
while (root != NULL)
{
cout << root->data << " ";
root = root->next;
}
}
int main()
{
int t;
cin >> t;
while (t–)
{
int n1, n2;
cin >> n1;
node *l1 = NULL;
for (int i = 0; i < n1; i++)
{
int x;
cin >> x;
InsertAtEnd(l1, x);
}
cin >> n2;
node *l2 = NULL;
for (int i = 0; i < n2; i++)
{
int x;
cin >> x;
InsertAtEnd(l2, x);
}
node *merged = mergeNodes(l1, l2);
print(merged);
cout << endl;
}
return 0;
}