#D13212. Shell Sort

    ID: 10984 Type: Default 6000ms 134MiB

Shell Sort

Shell Sort

Shell Sort

Shell Sort is a generalization of Insertion Sort to arrange a list of nn elements AA.

1 insertionSort(A, n, g) 2 for i = g to n-1 3 v = A[i] 4 j = i - g 5 while j >= 0 && A[j] > v 6 A[j+g] = A[j] 7 j = j - g 8 cnt++ 9 A[j+g] = v 10 11 shellSort(A, n) 12 cnt = 0 13 m = ? 14 G[] = {?, ?,..., ?} 15 for i = 0 to m-1 16 insertionSort(A, n, G[i])

A function shellSort(A, n) performs a function insertionSort(A, n, g), which considers every gg-th elements. Beginning with large values of gg, it repeats the insertion sort with smaller gg.

Your task is to complete the above program by filling ?. Write a program which reads an integer nn and a sequence AA, and prints mm, Gi(i=0,1,...,m1)G_i (i = 0, 1, ..., m − 1) in the pseudo code and the sequence AA in ascending order. The output of your program must meet the following requirements:

  • 1m1001 \leq m \leq 100
  • 0Gin0 \leq G_i \leq n
  • cnt does not exceed n1.5\lceil n^{1.5}\rceil

Constraints

  • 1n1,000,0001 \leq n \leq 1,000,000
  • 0Ai1090 \leq A_i \leq 10^9

Input

In the first line, an integer nn is given. In the following nn lines, Ai(i=0,1,...,n1)A_i (i=0,1,...,n-1) are given for each line.

Output

In the first line, print an integer mm. In the second line, print mm integers Gi(i=0,1,...,m1)G_i (i=0,1,...,m-1) separated by single space character in a line. In the third line, print cnt in a line. In the following nn lines, print Ai(i=0,1,...,n1)A_i (i=0,1,...,n-1) respectively.

This problem has multiple solutions and the judge will be performed by a special validator.

Examples

Input

5 5 1 4 3 2

Output

2 4 1 3 1 2 3 4 5

Input

3 3 2 1

Output

1 1 3 1 2 3

inputFormat

outputFormat

output of your program must meet the following requirements:

  • 1m1001 \leq m \leq 100
  • 0Gin0 \leq G_i \leq n
  • cnt does not exceed n1.5\lceil n^{1.5}\rceil

Constraints

  • 1n1,000,0001 \leq n \leq 1,000,000
  • 0Ai1090 \leq A_i \leq 10^9

Input

In the first line, an integer nn is given. In the following nn lines, Ai(i=0,1,...,n1)A_i (i=0,1,...,n-1) are given for each line.

Output

In the first line, print an integer mm. In the second line, print mm integers Gi(i=0,1,...,m1)G_i (i=0,1,...,m-1) separated by single space character in a line. In the third line, print cnt in a line. In the following nn lines, print Ai(i=0,1,...,n1)A_i (i=0,1,...,n-1) respectively.

This problem has multiple solutions and the judge will be performed by a special validator.

Examples

Input

5 5 1 4 3 2

Output

2 4 1 3 1 2 3 4 5

Input

3 3 2 1

Output

1 1 3 1 2 3

样例

5
5
1
4
3
2
2

4 1 3 1 2 3 4 5

</p>