#include <stdio.h>

/** define
  * N : A[]???????´???°
  * V_MAX : A[]?????¨???????????? ??????C[]???????´???°??¨??????
  */
#define N 2000001
#define V_MAX 10001 

/** prototype */
void CountingSort(int*, int*, int);

/** global */
int n;

int main(){
  int i,A[N],B[N];
  
  /* input the number of A[] */
  scanf("%d",&n);
  

  //B[] initialized
  for(i=0;i<n+1;i++){
    B[i] = 0; //B[0]????????????????????????????????????????????????
  }


  /* input datas */
  for(i=0;i<n;i++){ //???????????\?????????<n?????§
    scanf("%d",&A[i]);
  }
  
  CountingSort(A, B, V_MAX);
  
  for(i=1;i<n;i++){ //B[0]??????????????? B[n]???????????????
    printf("%d ",B[i]);
  }//??????????????§i=n-1(????????????)
  printf("%d\n",B[i]); //??????
  
  return 0;
}

void CountingSort(int *A, int *B, int k){
  int i,j,C[k];
  for(i=0;i<k;i++){
    C[i] = 0;
  }

  /* C[i] ??? i ???????????°????¨?????????? */
  for(j=0;j<n;j++){
      C[A[j]]++;
  }

  /* C[i] ??? i ??\????????°???????????°????¨??????????*/
  for(i=1;i<k;i++){
    C[i] = C[i] + C[i-1];
  }


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

    C[A[j]]--;
  }
}