#include<bits/stdc++.h>
using namespace std;
void Merging(int L, int Mid, int H, int ara[])
{
int m = Mid-L+1;
int n = H-Mid;
int A[m], B[n];
for(int i = 0; i < m; i++)
{
A[i] = ara[L+i];
}
for(int j = 0; j < n; j++)
{
B[j] = ara[Mid+1+j];
}
int i = 0, j = 0, k = L;
while( i < m && j < n)
{
if(A[i] < B[j])
{
ara[k] = A[i];
i++;
k++;
}
else
{
ara[k] = B[j];
k++;
j++;
}
}
for( ; i < m; i++)
{
ara[k] = A[i];
k++;
}
for( ; j < n; j++)
{
ara[k] = B[j];
k++;
}
}
void MergeSort(int L, int H, int ara[])
{
if(L < H)
{
int Mid = (L+H)/2;
MergeSort(L, Mid, ara);
MergeSort(Mid+1, H, ara);
Merging(L, Mid, H, ara);
}
}
int main()
{
int n;
cin>>n;
int ara[n];
for(int i = 0; i < n; i++)
{
cin>>ara[i];
}
MergeSort(0, n-1, ara);
for(int i = 0; i < n; i++)
{
cout<<ara[i]<<" ";
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZvaWQgTWVyZ2luZyhpbnQgTCwgaW50IE1pZCwgaW50IEgsIGludCBhcmFbXSkKewogICAgaW50IG0gPSBNaWQtTCsxOwogICAgaW50IG4gPSBILU1pZDsKICAgIGludCBBW21dLCBCW25dOwoKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBtOyBpKyspCiAgICB7CiAgICAgICAgQVtpXSA9IGFyYVtMK2ldOwogICAgfQogICAgZm9yKGludCBqID0gMDsgaiA8IG47IGorKykKICAgIHsKICAgICAgICBCW2pdID0gYXJhW01pZCsxK2pdOwogICAgfQoKICAgIGludCBpID0gMCwgaiA9IDAsIGsgPSBMOwogICAgd2hpbGUoIGkgPCBtICYmIGogPCBuKQogICAgewogICAgICAgIGlmKEFbaV0gPCBCW2pdKQogICAgICAgIHsKICAgICAgICAgICAgYXJhW2tdID0gQVtpXTsKICAgICAgICAgICAgaSsrOwogICAgICAgICAgICBrKys7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIGFyYVtrXSA9IEJbal07CiAgICAgICAgICAgIGsrKzsKICAgICAgICAgICAgaisrOwogICAgICAgIH0KICAgIH0KCiAgICBmb3IoIDsgaSA8IG07IGkrKykKICAgIHsKICAgICAgICBhcmFba10gPSBBW2ldOwogICAgICAgIGsrKzsKICAgIH0KICAgIGZvciggOyBqIDwgbjsgaisrKQogICAgewogICAgICAgIGFyYVtrXSA9IEJbal07CiAgICAgICAgaysrOwogICAgfQp9Cgp2b2lkIE1lcmdlU29ydChpbnQgTCwgaW50IEgsIGludCBhcmFbXSkKewogICAgaWYoTCA8IEgpCiAgICB7CiAgICAgICAgaW50IE1pZCA9IChMK0gpLzI7CiAgICAgICAgTWVyZ2VTb3J0KEwsIE1pZCwgYXJhKTsKICAgICAgICBNZXJnZVNvcnQoTWlkKzEsIEgsIGFyYSk7CiAgICAgICAgTWVyZ2luZyhMLCBNaWQsIEgsIGFyYSk7CiAgICB9Cn0KCmludCBtYWluKCkKewogICAgaW50IG47CiAgICBjaW4+Pm47CiAgICBpbnQgYXJhW25dOwogICAgZm9yKGludCBpID0gMDsgaSA8IG47IGkrKykKICAgIHsKICAgICAgICBjaW4+PmFyYVtpXTsKICAgIH0KCiAgICBNZXJnZVNvcnQoMCwgbi0xLCBhcmEpOwoKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspCiAgICB7CiAgICAgICAgY291dDw8YXJhW2ldPDwiICI7CiAgICB9Cn0K