var i,j,n,x,t:longint;
a:Array[1..2000]of longint;
procedure swap(var a,b:longint);//交换2个数的过程
var c:longint;
begin
c:=a;a:=b;b:=c;
end;
begin
readln(n);
for i:=1 to n do read(a[i]);//读入n个数
readln(x);//读入要插入的数
a[n+1]:=x;//把要插入的数放进数组
inc(n);//现在有n+1个数,所以n要+1
for i:=1 to n do begin //
冒泡排序,其实也就是把x插进去
for j:=i+1 to n do
if a[1]>a[2] then begin //如果a序列是降序排列
if a[i]<a[j] then swap(a[i],a[j]);//交换2个数
end else begin //a数组是升序排列
if a[i]>a[j] then swap(a[i],a[j]);//交换2个数
end;
end;
for i:=1 to n do write(a[i],' ');//输出
writeln;
end.