#include <stdio.h>

//#define N 2097152 // 2^21
#define N 524288 // 2^19
#define MAXVAL 16384 // 2^14

void countingSort(int *A, int *B, int n, int max) {
  int i, C[MAXVAL] = {0};

  // count up
  //  puts("count up");
  for (i = 0; i < n; i++) {
    C[A[i]] ++;
    //    printf("C[%d]:%d\n", A[i], C[A[i]]);
  }

  //  puts("calc cumulative sum");
  // calculate cumulative sum
  for (i = 1; i <= max; i++) {
    C[i] += C[i - 1];
    //    printf("C[%d]:%d\n", i, C[i]);
  }

  //  puts("sort");
  for (i = n - 1; 0 <= i; i--) {
    B[C[A[i]]] = A[i];
    //    printf("B[%d]:%d\n", C[A[i]], A[i]);
    C[A[i]]--;
  }
}

int main() {
  int i, n, max = 0, A[N] = {0}, B[N] = {0};
  const char *sp;

  scanf("%d", &n);
  for (i = 0; i < n; i++) {
    scanf("%d", &A[i]);
    if (max < A[i])
      max = A[i];
  }
  countingSort(A, B, n, max);
  for (i = 1, sp = ""; i < n + 1; i++) {
    printf("%s%d", sp, B[i]);
    sp = " ";
  }
  puts("");
  return 0;
}