#include <iostream>
using namespace std;
int h[100];
int n;
void siftdown(int i){
int t, flag = 0;
while(i*2 <= n && flag == 0){
if(h[i] > h[i*2]){
t = i*2;
}else {
t = i;
}
if(i*2+1 <= n && h[t] > h[i*2+1]){
t = i*2+1;
}
if(t != i){
swap(h[i], h[t]);
i = t;
}else {
flag = 1;
}
}
}
void siftup(int i){
int flag = 0;
if(i == 1){
return ;
}
while(i != 1 && flag == 0){
if(h[i] < h[i/2]){
swap(h[i], h[i/2]);
i /= 2;
}else {
flag = 1;
}
}
return ;
}
int main(){
cin>>n;
for(int i=1; i<=n; i++){
cin>>h[i];
}
cout<<endl<<"--------------------------"<<endl;
int m;
cin>>m;
for(int i=1; i<=m; i++){
cin>>h[++n];
for(int i=n/2; i>=1; i--){
siftdown(i);
}
}
for(int i=1; i<=n; i++){
cout<<h[i]<<' ';
}
return 0;
}