//QuickSort
#include <cstdio>
#include <stdlib.h>
#include <time.h>
#include <algorithm>
#define NMAX 500003
using namespace std;
int v[NMAX],n;
int pivot(int st, int dr)
{
int p=rand()%(dr-st+1)+st, x;
x=v[p];
while(st<=dr)
{
while(v[st]<x) st++;
while(v[dr]>x) dr--;
if(st<=dr)
swap(v[st++],v[dr--]);
}
return dr;
}
void quick(int s, int d)
{
int m;
if(s<d)
{
m = pivot(s,d);
quick(s,m);
quick(m+1,d);
}
}
int main()
{
int i;
FILE *f = fopen("algsort.in", "r");
fscanf(f, "%d", &n);
for(i=1; i<=n; i++)
fscanf(f, "%d", &v[i]);
fclose(f);
srand(time(NULL));
quick(1,n);
f = fopen("algsort.out", "w");
for(i=1; i<=n; i++)
fprintf(f, "%d ", v[i]);
fclose(f);
return 0;
}