#include <fstream>
#include <cstdlib>
#include <ctime>
using namespace std;
const int MAXN = 500005;
ifstream in("algsort.in");
ofstream out("algsort.out");
int n;
int v[MAXN];
void afisare()
{
for (int i = 1;i <= n;++i)
printf("%d ",v[i]);
printf("\n");
}
void citire()
{
in >> n;
for (int i = 1;i <= n;++i)
in >> v[i];
}
void schimba(int &a, int &b)
{
int aux = b;
b = a;
a = aux;
}
void sortare(int A[],int st, int dr)
{
int pozpivot = rand() % (dr - st + 1) + st;
int pivot = A[pozpivot];
int i = st, j = dr;
while (i <= j)
{
while(A[i] < pivot)
++i;
while(A[j] > pivot)
--j;
if (i <= j)
{
schimba(A[i],A[j]);
++i;
--j;
}
}
if (st < j)
sortare(A,st,j);
if (i < dr)
sortare(A,i,dr);
}
int main()
{
srand(time(NULL));
citire();
sortare(v, 1, n);
for (int i = 1;i < n ;++i)
out << v[i] << " ";
out << v[n] << "\n";
return 0;
}