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

int n;

void CountingSort(int *A, int *B, int k){
  int i,j;
  int *C;
  C = (int *)malloc(sizeof(int) * k);

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

  // count
  for(j=1; j<=n; j++) C[A[j]]++;

  // accum
  for(i=1; j<=k; j++) C[i] = C[i] + C[i-1];

  // restruct
  for(j=n; j>0; j--) {
    B[C[A[j]]] = A[j];
    C[A[j]]--;
  }

  free(C);
}

int main(){
  int *A,*B;
  int i,k;

  // input and alloc
  scanf("%d",&n);
  A = (int *)malloc(sizeof(int) * n);
  for(i=0; i<n; i++) A[i] = 0;
  B = (int *)malloc(sizeof(int) * n);
  for(i=0; i<n; i++) B[i] = 0;
  for(i=0; i<n; i++) scanf((i == n-1) ? "%d" : "%d ",&A[i]);

  // calc k
  for(i=0; i<n; i++){
    if(A[i] >= k) k = A[i];
    else continue;
  }

  // sort
  CountingSort(A,B,k);

  // output
  for(i=0; i<n; i++) printf((i == n-1) ? "%d\n" : "%d ", B[i]);

  free(A);
  free(B);

  return 0;
}