#define MAX 100002
void swap(int*a,int *b)
{
int t=*a;
*a=*b;
*b=t;
}
int partsort(int *a,int left,int right)
{
int key=(left+right)/2;
while(left<right)
{
while(key<right&&a[key]<=a[right])
{
right--;
}
while(left<key&&a[key]>=a[left])
{
left++;
}
if(left<right)swap(&a[left],&a[right]);
}
swap(&a[left],&a[key]);
return left;
}
void quicksort(int *a,int left,int right)
{
if(left>=right)return;
int key=partsort(a,left,right);
quicksort(a,left,key-1);
quicksort(a,key+1,right);
return ;
}
int main()
{
int n;
int a[MAX];
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
int left=0,right=n-1;
quicksort(a,left,right);
for(int i=0;i<n;i++)
{
printf("%d ",a[i]);
}
return 0;
}