#include
using namespace std;
void Merge(int A[], int start, int end)
{
int mid= (start+end)/2;
int i=start;
int j=mid+1;
int k=start;
int temp[100];
while (i<=mid && j<=end)
{
if (A[i]<A[j])
{
temp[k++]=A[i++];
}
else
{
temp[k++]=A[j++];
}
}
while(i<=mid)
{
temp[k++]=A[i++];
}
while(j<=end)
{
temp[k++]=A[j++];
}
for (int c = start; c <=end; c++)
{
A[c]=temp[c];
}
}
void MergeSort(int A[],int start, int end)
{
if (start>=end)
{
return;
}
int mid= (start + end)/2;
MergeSort(A,start,mid);
MergeSort(A,mid+1,end);
Merge(A,start,end);
}
int main()
{
int n;
cin>>n;
int Array[n];
for (int i = 0; i < n; i++)
{
cin>>Array[i];
}
MergeSort(Array,0,n-1);
for (int i = 0; i < n; i++)
{
cout<<Array[i]<<" ";
}
}