#include <iostream>
using namespace std;
void merge(int *a,int l ,int mid,int r){
int n1=mid-l+1;
int n2=r-mid;
int A[n1],B[n2];
int i=0,j=0,k=l;
for(int i=0;i<n1;i++){
A[i]=a[l+i];
}
for(int i=0;i<n2;i++){
B[i]=a[mid+1+i];
}
while(i<n1 && j<n2){
if(A[i]<B[j]){
a[k]=A[i];
i++;
}
else{
a[k]=B[j];
j++;
}
k++;
}
while(i<n1){
a[k]=A[i];
k++;
i++;
}
while(j<n2){
a[k]=B[j];
k++;
j++;
}
}
void mergesort(int *a,int l,int r){
if(l<r){
int mid=(l+r)/2;
mergesort(a,l,mid);
mergesort(a,mid+1,r);
merge(a,l,mid,r);
}
}
int main() {
int n;
cin>>n;
int a[n];
for(int i=0;i<n;i++){
cin>>a[i];
}
mergesort(a,0,n-1);
for(int i=0;i<n;i++){
cout<<a[i]<<" ";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp2b2lkIG1lcmdlKGludCAqYSxpbnQgbCAsaW50IG1pZCxpbnQgcil7CglpbnQgbjE9bWlkLWwrMTsKCWludCBuMj1yLW1pZDsKCWludCBBW24xXSxCW24yXTsKCWludCBpPTAsaj0wLGs9bDsKCWZvcihpbnQgaT0wO2k8bjE7aSsrKXsKCQlBW2ldPWFbbCtpXTsKCX0KCWZvcihpbnQgaT0wO2k8bjI7aSsrKXsKCQlCW2ldPWFbbWlkKzEraV07Cgl9Cgl3aGlsZShpPG4xICYmIGo8bjIpewoJCWlmKEFbaV08QltqXSl7CgkJICAgYVtrXT1BW2ldOwoJCSAgIGkrKzsKCQl9CgkJZWxzZXsKCQkJYVtrXT1CW2pdOwoJCQlqKys7CgkJfQoJCWsrKzsKCX0KCXdoaWxlKGk8bjEpewoJCWFba109QVtpXTsKCQkgICBrKys7CgkJICAgaSsrOwoJfQoJd2hpbGUoajxuMil7CgkJYVtrXT1CW2pdOwoJCSAgIGsrKzsKCQkgICBqKys7Cgl9CgkKCQp9CnZvaWQgbWVyZ2Vzb3J0KGludCAqYSxpbnQgbCxpbnQgcil7CglpZihsPHIpewoJCWludCBtaWQ9KGwrcikvMjsKCQltZXJnZXNvcnQoYSxsLG1pZCk7CgkJbWVyZ2Vzb3J0KGEsbWlkKzEscik7CgkJbWVyZ2UoYSxsLG1pZCxyKTsKCX0KfQppbnQgbWFpbigpIHsKCWludCBuOwoJY2luPj5uOwoJaW50IGFbbl07Cglmb3IoaW50IGk9MDtpPG47aSsrKXsKCQljaW4+PmFbaV07Cgl9CgltZXJnZXNvcnQoYSwwLG4tMSk7Cglmb3IoaW50IGk9MDtpPG47aSsrKXsKCQljb3V0PDxhW2ldPDwiICI7Cgl9CglyZXR1cm4gMDsKfQ==