#include<bits/stdc++.h>
using namespace std;
using ll = long long;
using int128 = __int128;
#define all(v) (v).begin(), (v).end()
#define sz(v) (int)(v).size()
#define fi first
#define se second
#define debug(x) cerr << #x << " = " << x << '\n';
template <typename T>
void read(T &x) {
x = 0; bool f = 0; char c = getchar();
while (!isdigit(c)) { if (c == '-') f = 1; c = getchar(); }
while (isdigit(c)) { x = x * 10 + c - '0'; c = getchar(); }
if (f) x = -x;
}
template <typename T>
void write(T x) {
if (x < 0) { putchar('-'); x = -x; }
char s[25]; int i = 0;
do { s[i++] = x % 10 + '0'; x /= 10; } while (x);
while (i) putchar(s[--i]);
}
const int MOD = 1e9+7;
void solve() {
int n; read(n);
vector<int> a(n);
for (int &x : a) read(x);
sort(all(a));
for (int x : a) { write(x); putchar(' '); }
putchar('\n');
}
int main() {
ios_base::sync_with_stdio(false); cin.tie(NULL);
#define TASK "ABC"
if (fopen(TASK".INP", "r")) {
freopen(TASK".INP", "r", stdin);
freopen(TASK".OUT", "w", stdout);
}
int tests = 1; // read(tests);
while (tests--) solve();
#ifndef ONLINE_JUDGE
cerr << "\nTime elapsed: " << 1.0 * clock() / CLOCKS_PER_SEC << " s.\n";
#endif
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnVzaW5nIGxsID0gbG9uZyBsb25nOwp1c2luZyBpbnQxMjggPSBfX2ludDEyODsKCiNkZWZpbmUgYWxsKHYpICh2KS5iZWdpbigpLCAodikuZW5kKCkKI2RlZmluZSBzeih2KSAoaW50KSh2KS5zaXplKCkKI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIGRlYnVnKHgpIGNlcnIgPDwgI3ggPDwgIiA9ICIgPDwgeCA8PCAnXG4nOwoKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CnZvaWQgcmVhZChUICZ4KSB7CiAgICB4ID0gMDsgYm9vbCBmID0gMDsgY2hhciBjID0gZ2V0Y2hhcigpOwogICAgd2hpbGUgKCFpc2RpZ2l0KGMpKSB7IGlmIChjID09ICctJykgZiA9IDE7IGMgPSBnZXRjaGFyKCk7IH0KICAgIHdoaWxlIChpc2RpZ2l0KGMpKSB7IHggPSB4ICogMTAgKyBjIC0gJzAnOyBjID0gZ2V0Y2hhcigpOyB9CiAgICBpZiAoZikgeCA9IC14Owp9Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4Kdm9pZCB3cml0ZShUIHgpIHsKICAgIGlmICh4IDwgMCkgeyBwdXRjaGFyKCctJyk7IHggPSAteDsgfQogICAgY2hhciBzWzI1XTsgaW50IGkgPSAwOwogICAgZG8geyBzW2krK10gPSB4ICUgMTAgKyAnMCc7IHggLz0gMTA7IH0gd2hpbGUgKHgpOwogICAgd2hpbGUgKGkpIHB1dGNoYXIoc1stLWldKTsKfQoKY29uc3QgaW50IE1PRCA9IDFlOSs3OwoKdm9pZCBzb2x2ZSgpIHsKICAgIGludCBuOyByZWFkKG4pOwogICAgdmVjdG9yPGludD4gYShuKTsKICAgIGZvciAoaW50ICZ4IDogYSkgcmVhZCh4KTsKICAgIHNvcnQoYWxsKGEpKTsKICAgIAogICAgZm9yIChpbnQgeCA6IGEpIHsgd3JpdGUoeCk7IHB1dGNoYXIoJyAnKTsgfQogICAgcHV0Y2hhcignXG4nKTsKfQoKaW50IG1haW4oKSB7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgY2luLnRpZShOVUxMKTsKCiAgICAjZGVmaW5lIFRBU0sgIkFCQyIKICAgIGlmIChmb3BlbihUQVNLIi5JTlAiLCAiciIpKSB7CiAgICAgICAgZnJlb3BlbihUQVNLIi5JTlAiLCAiciIsIHN0ZGluKTsKICAgICAgICBmcmVvcGVuKFRBU0siLk9VVCIsICJ3Iiwgc3Rkb3V0KTsKICAgIH0KCiAgICBpbnQgdGVzdHMgPSAxOyAvLyByZWFkKHRlc3RzKTsKICAgIHdoaWxlICh0ZXN0cy0tKSBzb2x2ZSgpOwoKICAgICNpZm5kZWYgT05MSU5FX0pVREdFCiAgICBjZXJyIDw8ICJcblRpbWUgZWxhcHNlZDogIiA8PCAxLjAgKiBjbG9jaygpIC8gQ0xPQ0tTX1BFUl9TRUMgPDwgIiBzLlxuIjsKICAgICNlbmRpZgoKICAgIHJldHVybiAwOwp9