var
n,i:longint;
a:array[1..100000] of longint;
procedure swap(var a,b:longint);
var
t:longint;
begin
t:=a;a:=b;b:=t;
end;
procedure qsort(l,r:longint);
var
i,j,m:longint;
begin
i:=l;
j:=r;
m:=
a[random(r-l+1)+l];{注意啦,要减1,因为random只会生成<n的随机数}
repeat
while a[i]
while a[j]>m do dec(j);
if i<=j then
begin
swap(a[i],a[j]);
inc(i);
dec(j);
end;
until i>j;
if j>l then qsort(l,j);
if i
end;
begin
randomize;{写在主程序里}
read(n);
for i:=1 to n do
read(a[i]);
qsort(1,n);
for i:=1 to n do
write(a[i],' ');
end.