#include<iostream>
using namespace std;
struct node
{ int data;
node * next;
};
int main()
{ node *head,*p,*q,*s;
head=p=q=s=NULL;
int i,j,k,n;
cin>>n;
q=new node;
for (i=1;i<=n;i++)
{ s=new node;
cin>>s->data;
if (head==NULL)
head=s;
else p->next=s;
p=s;
}
p->next=NULL;
p=head;
cin>>q->data;
if (q->data<head->data) // 头结点之前插入节点的情况
{q->next=head;
head=q;}
else
{k=0;
while(p->next) //中间的节点
{if (q->data<p->next->data)
{ q->next=p->next;
p->next=q;
k++;
break;
}
p=p->next;
}
if (k==0) // 在尾节点之后插入
{ p->next=q;
}
}
p=head;
for (i=1;i<=n+1;i++)
{cout<<p->data<<endl;
p=p->next;
}
}