#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
****************************************************************/