#include <stdio.h>
#include <math.h>

#define MAX 200000
#define SENTINEL 2000000000

int L[MAX / 2 + 2], R[MAX / 2 + 2];
static int C[MAX];
int B[MAX];


long long mergeSort(int A[],int n){
	int mid;	
	//??????????????????
	for (int i = 0; i < n; i++){
		C[i] = 0;
	}
	

	//????????°????????????????????????????????????????????°??????????????????????????°?????\???
	for (int i = 0; i < n; i++){
		C[A[i]]++;
		//printf("A C[%d] %d \n", A[i], C[A[i]]);
	}

	

	//????????°?????\???????´???????????????????
	for (long i = 1; i < 100; i++){
		C[i] = C[i - 1] +C[i];
		//printf("C[%d] %d \n", i, C[i]);
	}

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

	return 0;
}

int main(){
	int A[MAX], n, i;
	scanf("%d", &n);

	for (i = 0; i < n; i++){
		scanf("%d", &A[i]);
	}

	long long ans = mergeSort(A,n);

	for (i = 1; i <= n; i++){

		printf("%d ", B[i]);

	}

	return 0;

}