#include <stdio.h>
void shellInset(int a[],int n,int bk);
void shellsort(int a[],int n);
int main(){
int i,n,a[100];
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
shellsort(a,n);
for(i=0;i<n;i++){
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
void shellsort(int a[],int n){
int bk;
bk=n/2;
while(bk>=1){
shellInset(a,n,bk);
bk=bk/2;
}
}
void shellInset(int a[],int n,int bk){
int i,j,x;
for(i=bk;i<n;i++){
if(a[i-bk]>a[i]){
j=i-bk;
x=a[i];
a[i]=a[i-bk];
while(x<a[j]){
a[j+bk]=a[j];
j-=bk;
}
a[j+bk]=x;
}
}
}
void shellInset(int a[],int n,int bk);
void shellsort(int a[],int n);
int main(){
int i,n,a[100];
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
shellsort(a,n);
for(i=0;i<n;i++){
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
void shellsort(int a[],int n){
int bk;
bk=n/2;
while(bk>=1){
shellInset(a,n,bk);
bk=bk/2;
}
}
void shellInset(int a[],int n,int bk){
int i,j,x;
for(i=bk;i<n;i++){
if(a[i-bk]>a[i]){
j=i-bk;
x=a[i];
a[i]=a[i-bk];
while(x<a[j]){
a[j+bk]=a[j];
j-=bk;
}
a[j+bk]=x;
}
}
}