#include <bits/stdc++.h>
using namespace std;
const int N = 5e5 + 2;
int n, a[N];
int partitie(int st, int dr) {
int pivot = a[dr], i = st;
for(int j = st; j < dr; ++j) {
if(a[j] < pivot) {
swap(a[i], a[j]);
++i;
}
}
swap(a[i], a[dr]);
return i;
}
int get_rand(int x) {
int val1 = rand() % RAND_MAX;
int val2 = rand() % RAND_MAX;
return ((val1 << 15) ^ val2) % x;
}
void quick_sort(int st, int dr) {
if(st >= dr) return;
int pivot = st + get_rand(dr - st + 1);
swap(a[pivot], a[dr]);
int poz = partitie(st, dr);
quick_sort(st, poz - 1);
quick_sort(poz + 1, dr);
}
int main() {
ifstream cin("algsort.in");
ofstream cout("algsort.out");
cin >> n;
srand(time(0));
for(int i = 1; i <= n; ++i)
cin >> a[i];
quick_sort(1, n);
for(int i = 1; i <= n; ++i)
cout << a[i] << ' ';
}