#include<bits/stdc++.h>
using namespace std;
long long n,m[1001] = {0},x,y = 0,z[10001][1001];
char str;
long long merge(long long left,long long right){
if(left==right){
y++;
z[y][1] = m[left];
z[y][0] = 1;
return y;
}
long long center = (left+right)/2,i1 = 1,i2 = 1,b1,b2,l1,l2;
b1 = merge(left,center);
b2 = merge(center+1,right);
y++;
l1 = z[b1][0];
l2 = z[b2][0];
z[y][0] = l1+l2;
for(long long i = 1;i<=z[y][0];i++){
if(i1==l1){
for(long long j = i2;j<=l2;j++){
z[y][i] = z[b2][j];
i++;
}
break;
}
if(i2==l2){
for(long long j = i1;j<=l1;j++){
z[y][i] = z[b1][j];
i++;
}
break;
}
if(z[b1][i1]<z[b2][i2]){
z[y][i] = z[b1][i1];
i1++;
continue;
}
if(z[b1][i1]>=z[b2][i2]){
z[y][i] = z[b2][i2];
i2++;
continue;
}
}
return y;
}
int main(){
cin>>n;
for(long long i = 1;i<=n;i++){
cin>>m[i];
}
x = merge(1,n);
for(long long i = 1;i<=z[x][0];i++){
cout<<z[x][i]<<" ";
}
return 0;
}