#include<stdlib.h>
#define DataType int
typedef struct LNode{
DataType data;
struct LNode *next;
}LNode, *LinkedList;
void ListPrint(LinkedList L){
LNode *p;
p = L -> next;
while(p != NULL){
printf("%d ", p -> data);
p = p -> next;
}
}
LinkedList CreateTail(LinkedList L, int a[], int n){
L = (LNode*) malloc (sizeof(LNode));
LNode *r, *s;
r = L;
int i;
for(i = 0; i < n; i ++){
s = (LNode*) malloc (sizeof(LNode));
s -> data = a[i];
s -> next = NULL;
r -> next = s;
r = s;
}
return L;
}
LinkedList Union(LinkedList La, LinkedList Lb){
LNode *pa, *pb, *pc, *Lc;
Lc = (LNode*) malloc (sizeof(LNode));
Lc -> next = NULL;
pa = La -> next;
pb = Lb -> next;
pc = Lc;
while(pa && pb){
if(pa -> data <= pb -> data){
pc -> next = pa;
pc = pa;
pa = pa -> next;
}else{
pc -> next = pb;
pc = pb;
pb = pb -> next;
}
}
if(pa){
pc -> next = pa;
}
if(pb){
pc -> next = pb;
}
return Lc;
}
int main(){
LNode *La, *Lb, *Lc;
int i;
int a[15];
int b[15];
for(i = 0; i < 15; i ++){
scanf("%d", &a[i]);
}
for(i = 0; i < 15; i ++){
scanf("%d", &b[i]);
}
La = CreateTail(La, a, 15);
Lb = CreateTail(Lb, b, 15);
Lc = Union(La, Lb);
ListPrint(Lc);
}