#include<stdio.h>

int cnt=0;

void insertionSort(int *A,int n,int g){
	int i,v,j;
	for(i=g;i<n;i++){
		v=A[i];
		j=i-g;
		while(j>=0 && A[j]>v){
			A[j+g]=A[j];
			j=j-g;
			cnt++;}
			A[j+g]=v;}
}

void shellSort(int *A, int n){
	int i,m;
	m=2;
	int G[]={4,1};
	for(i=1;i<=m;i++) insertionSort(A,n,G[i]);
}

int main(){
	int i,j,lengh,A[101];
	
	scanf("%d",&lengh);
	for(i=0;i<lengh;i++)
		scanf("%d",&A[i]);
		shellSort(A,lengh);
	

	printf("2\n4 1\n");printf("%d\n",cnt);
	for(i=0;i<lengh;i++) printf("%d\n",A[i]);
}