#include <iostream>
using namespace std;
#include <iostream>
using namespace std;
void merge2(int a1[], int low, int mid, int high){
int gap = (high-low+2)/2;
while(gap>=1){
int i=0,j=i+gap;
while(j<=high){
if(a1[i]>a1[j]) swap(a1[i],a1[j]);
i++;j++;
}
int temp = gap;
gap = (gap+2-1)/2;
if(temp==gap==1) break;
}
}
void mergeSort(int a[], int low, int high){
if(low>=high) return;
int mid = low+(high-low)/2;
mergeSort(a,low,mid);
mergeSort(a,mid+1,high);
merge2(a,low,mid,high);
}
int main(){
int n; cin>>n;
int arr[n];
for (int i = 0; i < n; i++)
{
cin>>arr[i];
}
mergeSort(arr,0,n-1);
for (int i = 0; i < n; i++)
{
cout<<arr[i]<<'\n';
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdm9pZCBtZXJnZTIoaW50IGExW10sIGludCBsb3csIGludCBtaWQsIGludCBoaWdoKXsKICAgIGludCBnYXAgPSAoaGlnaC1sb3crMikvMjsKCiAgICB3aGlsZShnYXA+PTEpewogICAgICAgIGludCBpPTAsaj1pK2dhcDsKCiAgICAgICAgd2hpbGUoajw9aGlnaCl7CiAgICAgICAgICAgIAogICAgICAgICAgICBpZihhMVtpXT5hMVtqXSkgc3dhcChhMVtpXSxhMVtqXSk7CiAgICAgICAgICAgIGkrKztqKys7CiAgICAgICAgfQoKICAgICAgICBpbnQgdGVtcCA9IGdhcDsKICAgICAgICBnYXAgPSAoZ2FwKzItMSkvMjsKICAgICAgICBpZih0ZW1wPT1nYXA9PTEpIGJyZWFrOwogICAgfQp9Cgp2b2lkIG1lcmdlU29ydChpbnQgYVtdLCBpbnQgbG93LCBpbnQgaGlnaCl7CiAgICBpZihsb3c+PWhpZ2gpIHJldHVybjsKICAgIGludCBtaWQgPSBsb3crKGhpZ2gtbG93KS8yOwogICAgbWVyZ2VTb3J0KGEsbG93LG1pZCk7CiAgICBtZXJnZVNvcnQoYSxtaWQrMSxoaWdoKTsKICAgIG1lcmdlMihhLGxvdyxtaWQsaGlnaCk7Cgp9CgppbnQgbWFpbigpewoKCiAgICBpbnQgbjsgIGNpbj4+bjsKICAgIGludCBhcnJbbl07CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKICAgIHsKICAgICAgICBjaW4+PmFycltpXTsKICAgIH0KICAgIG1lcmdlU29ydChhcnIsMCxuLTEpOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspCiAgICB7CiAgICAgICAgY291dDw8YXJyW2ldPDwnXG4nOwogICAgfQogICAgCiAgICByZXR1cm4gMDsKfQ==