#include <cstdio>
#include <cstdlib>
#include <stack>
#include <algorithm>
using namespace std;
const int MAXN = 100000;
int val[MAXN];
int n;
void QSort(int l, int r) {
	if (l <= r) {
		int pivot = val[l + rand() % (r - l + 1)];
		int low = l, high = r;
		while (low <= high) {
			while (val[low] < pivot)
				low++;
			while (val[high] > pivot)
				high--;
			if (low <= high) {
				swap(val[low], val[high]);
				low++;
				high--;
			}
		}
		QSort(l, high);
		QSort(low, r);
	}
}
void QuickSort() {
	QSort(0, n - 1);
}
int main() {
	scanf("%d", &n);
	for (int i = 0;i < n;i++) {
		scanf("%d", &val[i]);
	}
	QuickSort();
	for (int i = 0;i < n;i++) {
		printf("%d ", val[i]);
	}
	puts("");
	return 0;
}
/**************************************************************
	Problem: 2174
	User: admin
	Language: C++
	Result: Accepted
	Time:42 ms
	Memory:1540 kb
****************************************************************/