#include<iostream>
using namespace std;
int a[50000];
void QuickSort(int begin, int end)
{
if (begin >= end) return;
int left = begin;//记下begin
int right = end;//记下end
int keyi = begin;//标准为第一个元素
while (begin < end)
{
while (a[end] >= a[keyi] && begin < end)//从右边先开始
{
end--;
}
while (a[begin] <= a[keyi] && begin < end)
{
begin++;
}
swap(a[begin], a[end]);
}
//begin==end
swap(a[keyi],a[end]);//
keyi = end;//keyi跑到中间去了
QuickSort(left, keyi - 1);
QuickSort(keyi + 1, right);
}
int main()
{
int n = 0;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
QuickSort(0,n - 1);
for (int i = 0; i < n; i++)
{
cout<<a[i]<<" ";
}
cout << endl;
}