#include <cstdio>
#include <algorithm>
using namespace std;
#define IN_FILE "algsort.in"
#define OUT_FILE "algsort.out"
#define MAX_N 500005
unsigned v[ MAX_N ];
int main( ) {
FILE *f;
unsigned N, i, l;
f = fopen( IN_FILE, "r" );
fscanf( f, "%u", &N );
l = ( N >> 3 ) << 3;
i = 0;
for( ; i < l; i += 8 )
fscanf( f, "%u%u%u%u%u%u%u%u", v + i, v + i + 1, v + i + 2, v + i + 3, v + i + 4, v + i + 5, v + i + 6, v + i + 7 );
switch( N & 7 ) {
case 7:
fscanf( f, "%u%u%u%u%u%u%u", v + i, v + i + 1, v + i + 2, v + i + 3, v + i + 4, v + i + 5, v + i + 6 );
break;
case 6:
fscanf( f, "%u%u%u%u%u%u", v + i, v + i + 1, v + i + 2, v + i + 3, v + i + 4, v + i + 5 );
break;
case 5:
fscanf( f, "%u%u%u%u%u", v + i, v + i + 1, v + i + 2, v + i + 3, v + i + 4 );
break;
case 4:
fscanf( f, "%u%u%u%u", v + i, v + i + 1, v + i + 2, v + i + 3 );
break;
case 3:
fscanf( f, "%u%u%u", v + i, v + i + 1, v + i + 2 );
break;
case 2:
fscanf( f, "%u%u", v + i, v + i + 1 );
break;
case 1:
fscanf( f, "%u", v + i );
break;
}
fclose( f );
sort( v, v + N );
f = fopen( OUT_FILE, "w" );
for( i = 0; i != N; ++i )
fprintf( f, "%u ", v[ i ] );
fclose( f );
return 0;
}