// Создание set <своя_структура>. Сортировка массива.

#include <set>
#include <cstdio>

using namespace std;

int n, d[100];

struct box
{
  int i;

  box() { }
  box( int x ) { i = x; }
};

bool operator < ( box a, box b ) { return d[a.i] < d[b.i]; }

int main()
{
  set <box> s; // чтобы можно было создавать set<box>, multiset<box>, достаточно для (box,box) определить оператор "<"

  scanf("%d", &n);
  for (int i = 0; i < n; i++)
  {
    scanf("%d", &d[i]);
    s.insert(box(i));
  }

  // далее идет вывод всех различных элементов массива в порядке возрастания
  while (s.size() > 0)
  {
    int i = s.begin()->i;
    printf("%d ", d[i]);
    s.erase(i);
  }
  return 0;
}