#include <bits/stdc++.h>
using namespace std;
const int N = 533333, EE = 100000000, GG = 1000000000, ima = 2147483647;
int eq(double a, double b) {
  return a + 0.00000000001 >= b && b + 0.00000000001 >= a;
}
template <typename T>
void _ma(T &a, T b) {
  if (a < b) a = b;
}
template <typename T>
void _mi(T &a, T b) {
  if (a > b) a = b;
}
namespace io {
void _(int &k) {
  char c;
  int e = 1;
  k = 0;
  while ((c = getchar()) > '9' || c < '0')
    if (c == '-') e = -1;
  k = c - '0';
  while ((c = getchar()) <= '9' && c >= '0') {
    k *= 10;
    k += c - '0';
  }
  k *= e;
}
void _(long long &k) {
  char c;
  int e = 1;
  k = 0;
  while ((c = getchar()) > '9' || c < '0')
    if (c == '-') e = -1;
  k = c - '0';
  while ((c = getchar()) <= '9' && c >= '0') {
    k *= 10;
    k += c - '0';
  }
  k *= e;
}
void _(int &a, int &b) {
  _(a);
  _(b);
}
void _(int &a, int &b, int &c, int &d, int &e) {
  _(a);
  _(b);
  _(c);
  _(d);
  _(e);
}
void _(int &a, int &b, int &c, int &d) {
  _(a);
  _(b);
  _(c);
  _(d);
}
void _(int &a, int &b, int &c) {
  _(a);
  _(b);
  _(c);
}
void _(long long &a, long long &b) {
  _(a);
  _(b);
}
void _(long long &a, long long &b, long long &c, long long &d, long long &e) {
  _(a);
  _(b);
  _(c);
  _(d);
  _(e);
}
void _(long long &a, long long &b, long long &c) {
  _(a);
  _(b);
  _(c);
}
void _(long long &a, long long &b, long long &c, long long &d) {
  _(a);
  _(b);
  _(c);
  _(d);
}
void _c(char &c) {
  while ((c = getchar()) == ' ' || c == '\n')
    ;
}
void _p0(int k) {
  if (k >= 10) _p0(k / 10);
  putchar(k % 10 + '0');
}
void _p0(long long k) {
  if (k >= 10) _p0(k / 10);
  putchar(k % 10 + '0');
}
void _p(int k) {
  if (k < 0) {
    putchar('-');
    _p0(-k);
  } else
    _p0(k);
}
void _p(long long k) {
  if (k < 0) {
    putchar('-');
    _p0(-k);
  } else
    _p0(k);
}
void __p(int k) {
  _p(k);
  putchar(' ');
}
void _pn(int k) {
  _p(k);
  putchar('\n');
}
void __p(long long k) {
  _p(k);
  putchar(' ');
}
void _pn(long long k) {
  _p(k);
  putchar('\n');
}
void _p(int a, int b) {
  __p(a);
  _pn(b);
}
void _p(int a, int b, int c) {
  __p(a);
  __p(b);
  _pn(c);
}
void _p(int a, int b, int c, int d) {
  __p(a);
  __p(b);
  __p(c);
  _pn(d);
}
void _p(long long a, long long b) {
  __p(a);
  _pn(b);
}
void _p(long long a, long long b, long long c) {
  __p(a);
  __p(b);
  _pn(c);
}
void _p(long long a, long long b, long long c, long long d) {
  __p(a);
  __p(b);
  __p(c);
  _pn(d);
}
void op(long long *a, int n) {
  int i;
  n--;
  for (i = 1; i <= n; i++) __p(a[i]);
  _pn(a[n + 1]);
}
void op(int *a, int n) {
  int i;
  n--;
  for (i = 1; i <= n; i++) __p(a[i]);
  _pn(a[n + 1]);
}
}  // namespace io
namespace graph {
int fr[N], nx[N], t[N], w[N], j2;
void me(int s1, int t1) {
  nx[++j2] = fr[s1];
  fr[s1] = j2;
  t[j2] = t1;
}
void me(int s1, int t1, int w1) {
  nx[++j2] = fr[s1];
  fr[s1] = j2;
  t[j2] = t1;
  w[j2] = w1;
}
void me1(int s1, int t1) {
  me(s1, t1);
  me(t1, s1);
}
void me1(int s1, int t1, int w1) {
  me(s1, t1, w1);
  me(t1, s1, w1);
}
}  // namespace graph
namespace ufs {
int fa[N];
void _init(int n) {
  int i;
  for (i = 1; i <= n; i++) fa[i] = i;
}
int fi(int k) { return fa[k] = fa[k] == k ? k : fi(fa[k]); }
void hb(int a, int b) {
  a = fi(a);
  b = fi(b);
  fa[a] = b;
}
}  // namespace ufs
int gcd(int a, int b) { return b ? gcd(b, a % b) : a; }
void fop(const char *s) {
  char c[256], d[256];
  memset(c, 0, sizeof(c));
  memset(d, 0, sizeof(d));
  strcpy(c, s);
  strcpy(d, s);
  freopen(strcat(c, ".in"), "r", stdin);
  freopen(strcat(d, ".out"), "w", stdout);
}
void fcl() {
  fclose(stdin);
  fclose(stdout);
}
using namespace ufs;
using namespace io;
int n, m, a[N], an, f[N];
char s[N];
int main() {
  int i, j, a1, a2;
  _(n);
  for (i = 1; i <= n; i++) _(a[i]);
  sort(a + 1, a + n + 1);
  op(a, n);
}
