你擁有一副包含 $n$ 張牌的牌組,牌上的數字從 $1$ 到 $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 = 1, \dots, n$,恰好存在一個 $j \in \{1, \dots, n\}$ 使得 $c_j = i$。
輸出格式
在第一行,輸出你執行的操作次數 $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
2 3 1 2 1 2 1 3
範例 2
6 6 5 4 3 2 1
1 6 1 1 1 1 1 1
範例 3
1 1
0