#include<stdio.h>
#include<stdlib.h>
#define MAX 20000001
#define VMAX 10000

int main(void) {
    unsigned short *A, *B;

    int C[VMAX+ 1];
    int n, i, j;
    scanf("%d", &n);

    A = malloc(sizeof(short) * n + 1);
    B = malloc(sizeof(short) * n + 1);

    // for i = 0 to k
    for ( i = 0; i <= VMAX; i++ ) C[i] = 0;

    // C[i]にiの出現数を記録する
    for ( i = 0; i < n; i++ ) {
        scanf("%hu", &A[i + 1]);
        C[A[i + 1]]++;    
    }

    // C[i]にi以下の数の出現数を記録する  for i = 1 to k
    for ( i = 1; i <= VMAX; i++ ) C[i] = C[i] + C[i - 1];

    // for j = n downto 1
    for ( j = 1; j <= n; j++ ) {
        B[C[A[j]]] = A[j];
        C[A[j]]--;
    }

    for ( i = 1; i <= n; i++ ) {
        if ( i > 1 ) printf(" ");
        printf("%d", B[i]);
    }
    printf("\n");

    return 0;
}
