#include <iostream>
#include <vector>
using namespace std;

void Merge(int a[], int low, int mid, int high)
{
  vector<int> temp;
  int i = low, j = mid+1;
  
  while(i <= mid && j <= high)
  {
    if(a[i] >= a[j])
    {
      temp.push_back(a[i]);
      ++i;
    }
    else
    {
      temp.push_back(a[j]);
      ++j;
    }
  }
  
  while(i <= mid)
  {
    temp.push_back(a[i]);
    ++i;
  }
  
  while(j <= high)
  {
    temp.push_back(a[j]);
    ++j;
  }
  
  for(int i = low; i <= high; ++i)
    a[i] = temp[i-low];
}

void MergeSort(int a[], int low, int high)
{
  if(low == high)
    return;
  
  int mid = (low+high) / 2;
  MergeSort(a, low, mid);
  MergeSort(a, mid+1, high);
  
  Merge(a, low, mid, high);
}

int main() 
{
  int n;
  cin >> n;
    
  int a[n];
  for(int i = 0; i < n; ++i)
    cin >> a[i];
    
  MergeSort(a, 0, n-1);
  
  for(int i = 0; i < n; ++i)
    cout << a[i] << " ";
    
  return 0;
}