//Merge sort
#include <iostream>
#include <stdio.h>
using namespace std;
typedef int status;
// p..q q+1..r
void merge(int *a, int p, int q, int r)
{
status array2[100], array3[100];
int i, j;
for(i = 1; i <= q-p+1; i++)
array2[i] = a[p+i-1];
for(j = 1; j <= r-q; j++)
array3[j] = a[q+j];
array2[i] = INT_MAX;
array3[j] = INT_MAX;
//merge sorted array
i = j = 1;
int k;
for(k = p; k <= r; k++)
{
if(array2[i] > array3[j])
{
a[k] = array3[j];
j++;
}
else
{
a[k] = array2[i];
i++;
}
}
}
//apart array
void mergesort(int *a, int p, int r)
{
if( p < r)
{
int q = (p + r)/2;
mergesort(a, p, q);
mergesort(a, q+1, r);
merge(a, p, q, r);
}
}
int main()
{
status array1[100];
int n;
while(scanf("%d",&n) != EOF){
array1[0] = INT_MAX;
int i, j;
for(i = 1; i <= n; i++)
cin>>array1[i];
mergesort(array1, 1, n);
for(i = 1; i <= n; i++)
if(i == n)
cout<<array1[i]<<endl;
else
cout<<array1[i]<<" ";
}
return 0;
}