#include<cstdio>
#include<ctime>
#include<algorithm>
using namespace std;
int n;
int v[500001];
int random(int mn,int mx)
{
return mn+1+(rand()%(mx-mn));
}
void quick_sort(int l,int r)
{
if(l>=r)
{
return;
}
int pivot=v[random(l,r)];
int go_l=l,go_r=r;
while(go_l<=go_r)
{
while(go_l<=r&&v[go_l]<pivot)
{
go_l++;
}
while(go_r>=l&&v[go_r]>pivot)
{
go_r--;
}
if(go_l<=go_r)
{
swap(v[go_l],v[go_r]);
go_l++;
go_r--;
}
}
quick_sort(l,go_r);
quick_sort(go_l,r);
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
srand(time(NULL));
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&v[i]);
}
quick_sort(1,n);
for(int i=1;i<=n;i++)
{
printf("%d ",v[i]);
}
}