#include<iostream>
#include<list>
//STL之list的基本用法 
using namespace std;
void outputList(list<int > lst)//it=head->next;it!=NULLL;it=it->next;
{
    
    list<int>::iterator it;////LNode *it
    for(it=lst.begin();it!=lst.end();it++) 
    {
    if(it!=lst.begin())
        cout<<" ";
    cout<<*it;
    }
    cout<<endl;
}
 

int main()
{
    list<int>La;
    int i,m,n,t;
    cin>>n;
    
    for(i=0;i<n;i++)
    {
        cin>>t;
        La.push_back(t);//得到一个后进先出的链表 
        
     } 
     outputList(La);
     La.reverse();
      outputList(La);
     
     cin>>m;
     list<int>Lb;
     for(i=0;i<m;i++)
     {
         cin>>t;
         Lb.push_front(t);//得到一个先进先出的链表 
     }
     
     La.sort();//排序
     La.merge(Lb);//两个链表合并
     
     outputList(La);
     
     cout<<La.size()<<endl;//链表中有多少个节点 
     
     La.clear();
     
     return 0; 
     
     
      
}