#include<stdio.h>
int main()
{
  int n,i,j,g,cnt,k,h;
  scanf("%d",&n);
  int a[n];
  for(i=0;i<n;i++){
    scanf("%d",&a[i]);
  }
  cnt=0;
  int m=n/2;
  int G[m];
  int alt=n;
  printf("%d\n",m);
  for(i=0;i<m;i++){
    if(i==m-1){G[i]=1; break;}
    G[i]=alt-1;
    printf("%d ",G[i]);
    alt=(alt-1)/2;
  }
  printf("%d\n",G[i]);
  for(h=0;h<m;h++){
    for(i=G[h];i<n;i++){
      int v=a[i];
      j=i-G[h];
      while(j>=0 && a[j]>v){
        a[j+G[h]]=a[j];
        j=j-G[h];
        cnt++;
      }
      a[j+G[h]]=v;
    }
  }
  printf("%d\n",cnt);
   for(i=0;i<n;i++){
    printf("%d\n",a[i]);
  }
  return 0;
}
