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

int C[VMAX+1];
int n;
unsigned short *A, *B;

void CountingSort();

int main(){
  
  int i,j,k=0;
  scanf("%d", &n);
  for(i=1;i<=n;i++){
    scanf("%d",A);
  }

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

  CountingSort(VMAX,n);

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

  return 0;
}

void CountingSort(int k,int n){

  int i,j;

for( i = 0; i< k; i++){
  C[i] = 0;
 }

/* C[i] �� i �̏o�������L�^���� */
for( j = 1; j < n; j++){
  C[A[j]]++;
 }

/* C[i] �� i �ȉ��̐��̏o�������L�^����*/
for( i = 1; i<k; i++){
  C[i] = C[i] + C[i-1];
 }

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