#include <stdio.h>
long long a[100001];
void kuaipai(long long *a,int left,int right){
long long mid;
int max,key;
max=right;
key=left;
while(right!=left){
while(right>left&&a[right]>=a[key]){
right--;
}
while(left<right&&a[left]<=a[key]){
left++;
}
if(left!=right){
mid=a[right];
a[right]=a[left];
a[left]=mid;
}
}
mid=a[key];
a[key]=a[left];
a[left]=mid;
if(left>0){
kuaipai(a,0,left-1);
}
if(right<max){
kuaipai(a,right+1,max);
}
}
int main()
{
int numb,count;
scanf("%d",&numb);
for(count=0;count<numb;count++){
scanf("%lld",&a[count]);
}
kuaipai(a,0,numb-1);
for(count=0;count<numb;count++){
printf("%lld ",a[count]);
}
return 0;
}