#include<iostream>
using namespace std;
long long a[500010],arr[500010];//如果数组范围太小,记得改
int merge(int l,int r) {
int p=(l+r)/2,i=0;
if(l<r) {
merge(l,p);
merge(p+1,r);
int m=l,n=p+1,k=l;
while(m<=p&&n<=r) {
if(a[m]<=a[n])
arr[k++]=a[m++];
else {
arr[k++]=a[n++];
}
}
while(m<=p)
arr[k++]=a[m++];
while(n<=r)
arr[k++]=a[n++];
for(int i=l; i<=r; i++)
a[i]=arr[i];
}
}
int main() {
int n;
scanf("%d",&n);
for(int i=0; i<n; i++)
scanf("%d",&a[i]);
merge(0,n-1);
for(int i=0; i<n; i++)
printf("%d ",a[i]);
return 0;
}