$1$부터 $n$까지의 숫자가 적힌 $n$장의 카드 덱이 주어집니다(덱 내의 순서는 반드시 정렬되어 있지 않을 수 있습니다). 다음 연산을 반복하여 덱을 정렬해야 합니다.
$2 \le k \le n$을 선택하고 덱을 $k$개의 비어 있지 않은 연속된 부분 $D_1, D_2, \dots, D_k$로 나눕니다($D_1$은 덱의 처음 $|D_1|$장의 카드를 포함하고, $D_2$는 그다음 $|D_2|$장의 카드를 포함하는 식입니다). 그런 다음 부분들의 순서를 뒤집어 덱을 $D_k, D_{k-1}, \dots, D_2, D_1$로 변환합니다(즉, 새로운 덱의 처음 $|D_k|$장의 카드는 $D_k$가 되고, 그다음 $|D_{k-1}|$장의 카드는 $D_{k-1}$이 되는 식입니다). 각 카드 묶음 $D_i$ 내부의 순서는 연산에 의해 변하지 않습니다.
최대 $120$번의 연산을 수행하여 정렬된 덱(첫 번째 카드가 $1$, 두 번째 카드가 $2$인 상태)을 만들어야 합니다. 이 문제의 제한 조건 하에서 최대 $120$번의 연산으로 덱을 정렬하는 것은 항상 가능함이 증명되어 있습니다.
연산의 예시: 다음은 유효한 연산의 세 가지 예시입니다(서로 다른 크기의 세 덱에 대해).
- 덱이 $[3\ 6\ 2\ 1\ 4\ 5\ 7]$인 경우(3이 첫 번째 카드, 7이 마지막 카드), $k=4$로 연산을 수행하여 $D_1=[3\ 6]$, $D_2=[2\ 1\ 4]$, $D_3=[5]$, $D_4=[7]$로 나눌 수 있습니다. 이렇게 하면 덱은 $[7\ 5\ 2\ 1\ 4\ 3\ 6]$이 됩니다.
- 덱이 $[3\ 1\ 2]$인 경우, $k=3$으로 연산을 수행하여 $D_1=[3]$, $D_2=[1]$, $D_3=[2]$로 나눌 수 있습니다. 이렇게 하면 덱은 $[2\ 1\ 3]$이 됩니다.
- 덱이 $[5\ 1\ 2\ 4\ 3\ 6]$인 경우, $k=2$로 연산을 수행하여 $D_1=[5\ 1]$, $D_2=[2\ 4\ 3\ 6]$으로 나눌 수 있습니다. 이렇게 하면 덱은 $[2\ 4\ 3\ 6\ 5\ 1]$이 됩니다.
입력
첫 번째 줄에는 덱에 있는 카드의 개수 $n$ ($1 \le n \le 20\,000$)이 주어집니다. 두 번째 줄에는 $n$개의 정수 $c_1, c_2, \dots, c_n$이 주어집니다. 첫 번째 카드는 $c_1$, 두 번째 카드는 $c_2$와 같습니다. 모든 $i \in \{1, \dots, n\}$에 대하여 $c_j = i$를 만족하는 $j \in \{1, \dots, n\}$가 정확히 하나 존재함이 보장됩니다.
출력
첫 번째 줄에 수행할 연산의 횟수 $q$를 출력합니다($0 \le q \le 120$을 만족해야 합니다). 그다음, 각 연산을 설명하는 $q$개의 줄을 출력합니다. 연산을 설명하려면, 한 줄에 덱을 나눌 부분의 개수 $k$를 출력하고, 이어서 $k$개 부분의 크기 $|D_1|, |D_2|, \dots, |D_k|$를 출력합니다. $2 \le k \le n$이어야 하며, 모든 $i=1, \dots, k$에 대해 $|D_i| \ge 1$이고 $|D_1| + |D_2| + \dots + |D_k| = n$이어야 합니다. 이 문제의 제한 조건 하에서 최대 $120$번의 연산으로 덱을 정렬하는 것은 항상 가능함이 증명되어 있습니다. 덱을 정렬하는 방법이 여러 가지라면 그중 아무거나 출력해도 됩니다. $q$를 최소화할 필요는 없습니다.
예제
예제 입력 1
4 3 1 2 4
예제 출력 1
2 3 1 2 1 2 1 3
예제 입력 2
6 6 5 4 3 2 1
예제 출력 2
1 6 1 1 1 1 1 1
예제 입력 3
1 1
예제 출력 3
0