#include <cstdio>
#include <cstdlib>
#include <stack>
#include <algorithm>
using namespace std;
const int MAXN = 1000;
int val[MAXN];
int n;
void ShellInsert(int dk) {
int current;
for (int i = dk;i < n;i++) {
if (val[i] < val[i - dk]) {
current = val[i];
int j;
for (j = i - dk;j >= 0 && current < val[j];j -= dk)
val[j + dk] = val[j];
val[j + dk] = current;
}
}
}
void ShellSort() {
int current, t = 4;
int dlta[] = {7, 5, 3, 1};
for (int i = 0;i < t;i++) {
ShellInsert(dlta[i]);
}
}
int main() {
scanf("%d", &n);
for (int i = 0;i < n;i++) {
scanf("%d", &val[i]);
}
ShellSort();
for (int i = 0;i < n;i++) {
printf("%d ", val[i]);
}
puts("");
return 0;
}
/**************************************************************
Problem: 2173
User: admin
Language: C++
Result: Accepted
Time:8 ms
Memory:1148 kb
****************************************************************/