#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]<<" ";
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZvaWQgTWVyZ2luZyhpbnQgTCwgaW50IG1pZCwgaW50IEgsIGludCBhcmFbXSkKewogICAgaW50IG0gPSBtaWQtTCsxOwogICAgaW50IG4gPSBILW1pZDsKICAgIGludCBBW21dLCBCW25dOwogICAgZm9yKGludCBpID0gMDsgaSA8IG07IGkrKykKICAgIHsKICAgICAgICBBW2ldID0gYXJhW0wraV07CiAgICB9CiAgICBmb3IoaW50IGogPSAwOyBqIDwgbjsgaisrKQogICAgewogICAgICAgIEJbal0gPSBhcmFbbWlkKzEral07CiAgICB9CgogICAgaW50IGkgPSAwLCBqID0gMCwgayA9IEw7CiAgICB3aGlsZShpIDwgbSAmJiBqIDwgbikKICAgIHsKICAgICAgICBpZihBW2ldIDwgQltqXSkKICAgICAgICB7CiAgICAgICAgICAgIGFyYVtrXSA9IEFbaV07CiAgICAgICAgICAgIGkrKzsKICAgICAgICAgICAgaysrOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBhcmFba10gPSBCW2pdOwogICAgICAgICAgICBrKys7CiAgICAgICAgICAgIGorKzsKICAgICAgICB9CiAgICB9CiAgICBmb3IoIDsgaSA8IG07IGkrKykKICAgIHsKICAgICAgICBhcmFba10gPSBBW2ldOwogICAgICAgIGsrKzsKICAgIH0KICAgIGZvciggOyBqIDwgbjsgaisrKQogICAgewogICAgICAgIGFyYVtrXSA9IEJbal07CiAgICAgICAgaysrOwogICAgfQp9Cgp2b2lkIE1lcmdlU29ydChpbnQgTCwgaW50IEgsIGludCBhcmFbXSkKewogICAgaWYoTCA8IEgpCiAgICB7CiAgICAgICAgaW50IG1pZCA9IChMK0gpLzI7CiAgICAgICAgTWVyZ2VTb3J0KEwsIG1pZCwgYXJhKTsKICAgICAgICBNZXJnZVNvcnQobWlkKzEsIEgsIGFyYSk7CiAgICAgICAgTWVyZ2luZyhMLCBtaWQsIEgsIGFyYSk7CiAgICB9Cn0KCmludCBtYWluKCkKewogICAgaW50IG47CiAgICBjaW4+Pm47CiAgICBpbnQgYXJhW25dOwogICAgZm9yKGludCBpID0gMDsgaSA8IG47IGkrKykKICAgIHsKICAgICAgICBjaW4+PmFyYVtpXTsKICAgIH0KCiAgICBNZXJnZVNvcnQoMCwgbi0xLCBhcmEpOwoKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspCiAgICB7CiAgICAgICAgY291dDw8YXJhW2ldPDwiICI7CiAgICB9Cn0K