#include <iostream>
#include <vector>
#include <algorithm>
#include <map>
using namespace std;
//快速排序--分治、递归
void QuickSort(vector<int> &vecarr,int s,int e,int &k)
{
if(s>=e) return;
int i=s,j=e;
while(i!=j)
{
if(vecarr[i]>k)
{
if(vecarr[j]<k)
{
int temp=vecarr[i];
vecarr[i]=vecarr[j];
vecarr[j]=temp;
i++;
j--;
}
else
{
j--;
}
}
else
{
i++;
}
}
if(vecarr[i]>k)
{
int temp=k;
k=vecarr[i];
vecarr[i]=temp;
}
QuickSort(vecarr,s,i-1,vecarr[i]);
QuickSort(vecarr,i+1,e,vecarr[e]);
}
int main()
{
int n=0;
vector<int> vecarr;
cin>>n;
for(int i=0;i<n;i++)
{
int itemp=0;
cin>>itemp;
vecarr.push_back(itemp);
}
vector<int> vecarrbk(n);
QuickSort(vecarr,0,vecarr.size()-1,vecarr[vecarr.size()-1]);
for(int m=0;m<vecarr.size();m++)
{
cout<<vecarr[m]<<" ";
}
cout<<endl;
return 0;
}