#include <bits/stdc++.h>
using namespace std;
void merge(vector<int>&nums,int low,int mid,int high){
int left= low;
int right = mid+1;
vector<int>temp;
while(left<=mid && right<=high){
if(nums[left]<=nums[right]){
temp.push_back(nums[left++]);
}else{
temp.push_back(nums[right++]);
}
}
while(left<=mid){
temp.push_back(nums[left++]);
}
while(right<=high){
temp.push_back(nums[right++]);
}
for(int i = low ;i <= high;i++){
nums[i]= temp[i-low];
}
}
void helper(vector<int>&nums,int low,int high){
if(low>=high)return;
int mid = (low+high)/2;
helper(nums,low,mid);
helper(nums,mid+1,high);
merge(nums,low,mid,high);
}
vector<int>mergeSort(vector<int>&nums){
int n = nums.size();
helper(nums,0,n-1);
return nums;
}
int main() {
int n;cin>>n;
vector<int>a(n);
for(int i = 0;i<n ;i++){
cin>>a[i];
}
vector<int>ans = mergeSort(a);
for(int &x:ans)cout<<x<<endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIG1lcmdlKHZlY3RvcjxpbnQ+Jm51bXMsaW50IGxvdyxpbnQgbWlkLGludCBoaWdoKXsKCWludCBsZWZ0PSBsb3c7CglpbnQgcmlnaHQgPSBtaWQrMTsKCXZlY3RvcjxpbnQ+dGVtcDsKCXdoaWxlKGxlZnQ8PW1pZCAmJiByaWdodDw9aGlnaCl7CgkJaWYobnVtc1tsZWZ0XTw9bnVtc1tyaWdodF0pewoJCQl0ZW1wLnB1c2hfYmFjayhudW1zW2xlZnQrK10pOwoJCX1lbHNlewoJCQl0ZW1wLnB1c2hfYmFjayhudW1zW3JpZ2h0KytdKTsKCQl9Cgl9CgkKCXdoaWxlKGxlZnQ8PW1pZCl7CgkJCXRlbXAucHVzaF9iYWNrKG51bXNbbGVmdCsrXSk7Cgl9Cgl3aGlsZShyaWdodDw9aGlnaCl7CgkJCXRlbXAucHVzaF9iYWNrKG51bXNbcmlnaHQrK10pOwoJfQoJCglmb3IoaW50IGkgPSBsb3cgO2kgPD0gaGlnaDtpKyspewoJCW51bXNbaV09IHRlbXBbaS1sb3ddOwoJfQp9CnZvaWQgaGVscGVyKHZlY3RvcjxpbnQ+Jm51bXMsaW50IGxvdyxpbnQgaGlnaCl7CglpZihsb3c+PWhpZ2gpcmV0dXJuOwoJaW50IG1pZCA9IChsb3craGlnaCkvMjsKCWhlbHBlcihudW1zLGxvdyxtaWQpOwoJaGVscGVyKG51bXMsbWlkKzEsaGlnaCk7CgltZXJnZShudW1zLGxvdyxtaWQsaGlnaCk7Cn0KdmVjdG9yPGludD5tZXJnZVNvcnQodmVjdG9yPGludD4mbnVtcyl7CmludCBuID0gbnVtcy5zaXplKCk7CgloZWxwZXIobnVtcywwLG4tMSk7CglyZXR1cm4gbnVtczsKfQppbnQgbWFpbigpIHsKICAgaW50IG47Y2luPj5uOwogICAKICAgdmVjdG9yPGludD5hKG4pOwogICBmb3IoaW50IGkgPSAwO2k8biA7aSsrKXsKICAgICBjaW4+PmFbaV07CQogICB9CiAgIAogICB2ZWN0b3I8aW50PmFucyA9IG1lcmdlU29ydChhKTsKICAgZm9yKGludCAmeDphbnMpY291dDw8eDw8ZW5kbDsKCXJldHVybiAwOwp9