#include <cstdio>
#include <cstring>
#include <ctime>
#include <iostream>
#include <string>
using namespace std;
#define N 1000005
int n;
int a[N];
void swap(int& a, int& b) {
int p = a;
a = b;
b = p;
}
int cnt = 0;
int partition(int left, int right) {
int t;
t = rand() % (right - left + 1) + left;
swap(a[t], a[right]);
int pos = left;
for (int i = left; i <= right; i++) {
cnt++;
if (a[i] <= a[right]) {
swap(a[i], a[pos]);
pos++;
}
}
return pos - 1;
}
void quick_sort(int left, int right) {
if (left <= right) {
int mid = partition(left, right);
quick_sort(left, mid - 1);
quick_sort(mid + 1, right);
}
}
int main() {
srand(clock());
scanf("%d",&n);
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
quick_sort(0, n - 1);
for (int i = 0; i < n; i++) {
printf("%d ", a[i]);
}
printf("\n");
}