#include <stdio.h>
#include <stdlib.h>

#define nMAX 2000000
#define AMAX 10000

int *CountingSort(int *A, int *B, int n);

int main(){
  int n, A[AMAX], B[AMAX], i;
  
  scanf("%d", &n);
  if(nMAX<n) exit(8);
  for(i=1; i<=n; i++) {
    scanf("%d", &A[i]);
    B[i] = 0;
  }
  
  CountingSort(A, B, n);

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

  return 0;
}

int *CountingSort(int *A, int *B, int n) {
  int C[n], i;

  for(i=0; i<n; i++)
    C[i] = 0;
  
  /* C[i] に i の出現数を記録する */
  for(i=1; i<=n; i++)
    C[A[i]]++;
  
  /* C[i] に i 以下の数の出現数を記録する*/
  for(i=0; i<n; i++)
    C[i] = C[i] + C[i-1];
  
  for(i=n; i>=1; i--) {
    B[C[A[i]]] = A[i];
    C[A[i]]--;
  }
  
  return B;
}

