#include <stdio.h>
int pari(int a[],int l,int r) {
int i=l,j=r;
int tem=a[i]; //选取基准
while(i<j) {
while(i<j&&a[j]>=tem)j--; //从右到左访问
a[i]=a[j];
while(i<j&&a[i]<=tem)i++; //从左到右访问
a[j]=a[i];
}
a[j]=tem;
return i;
}
void quk(int a[],int l,int r) {
int q;
if(l<r) {
q=pari(a,l,r);
quk(a,l,q-1);
quk(a,q+1,r);
}
}
int main() {
int N;
scanf("%d",&N);
int a[N];
for(int i=0;i<N;i++)
scanf("%d",&a[i]);
quk(a,0,N-1);
for(int j=0;j<N;j++)
printf("%d ",a[j]);
}