#include<iostream>
#include<algorithm>
using namespace std;
const int N=1E5+10;
int q[N],n;
//归并需要
int temp[N];
//快速
void Quick_sort(int q[],int l,int r)
{
if(l == r) return ;
int x = q[l+r >> 1],i = l-1, j = r+1;
while(i<j)
{
do i++ ;while(q[i]<x);
do j-- ;while(q[j]>x);
if(i<j) swap(q[i],q[j]);
}
//开始递归
Quick_sort(q,l,j);
Quick_sort(q,j+1,r);
}
//归并
void Merge_sort(int *q,int l,int r)
{
if( l == r ) return;
int mid = l+r >> 1;
Merge_sort(q,l,mid);
Merge_sort(q,mid+1,r);
int k=0;
int i = l, j = mid +1;
while(i<=mid && j<= r)
{
if(q[i]<=q[j] ) temp[k++]=q[i++];
else temp[k++]=q[j++];
}
while(i<=mid) temp[k++] = q[i++];
while(j<=r) temp[k++]= q[j++];
for(int i=l,j=0;j<k;j++)q[i++]=temp[j];
}
int main()
{
cin >> n;
for(int i=0;i<n;i++) cin >> q[i];
//归并
// Merge_sort(q,0,n-1);
//快速
//Quick_sort(q,0,n-1);
sort(q,q+n);
for(int i=0;i<n;i++) cout << q[i] << " ";
}