#include <bits/stdc++.h>
const int MAXN = 500000;
using namespace std;
int v[MAXN + 5];
void qs ( int v[], int begin, int end ) {
int pivot = v[begin + rand() % ( end - begin + 1 )];
int b = begin, e = end;
while ( v[b] < pivot )
b++;
while ( v[e] > pivot )
e--;
while ( b < e ) {
swap ( v[b], v[e] );
do
b++;
while ( v[b] < pivot );
do
e--;
while ( v[e] > pivot );
}
if ( begin < e )
qs ( v, begin, e );
if ( e + 1 < end )
qs ( v, e + 1, end );
}
int main() {
ifstream fin( "algsort.in" );
ofstream fout( "algsort.out" );
int n;
fin >> n;
for ( int i = 0; i < n; i++ ) {
fin >> v[i];
}
qs ( v, 0, n - 1 );
for ( int i = 0; i < n; i++ ) {
fout << v[i] << ' ';
}
return 0;
}