#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);
    
    
    
    
    
}