#include<iostream>
using namespace std;
const int MAX = 1001;
int l[MAX];
void ShellInsert(int n, int dk)
{
for(int i=dk+1;i<=n;i++)
if(l[i]<l[i-dk])
{
l[0]=l[i];
int j;
for(j=i-dk;j>0&&l[0]<l[j];j+=dk)
l[j+dk]=l[j];
l[j+dk]=l[0];
}
}
void ShellSort(int n)
{
for(int k=n/2;k>0;k/=2)
ShellInsert(n, k);
}
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
cin>>l[i];
ShellSort(n);
for(int i=1;i<=n;i++)
cout<<l[i]<<" ";
cout<<endl;
return 0;
}