P15145 [SWERC 2025] Keygen 3
Description
Luke has just discovered a new 5D kart videogame. However, the software is not free: in order to activate it, you need to provide a license key.
Luke has found out that, in order to be valid, a license key must be a permutation of length $n$ with both of the following properties:
- it is bitonic;
- it has $m$ cycles.
Let $k$ denote the number of license keys (i.e., the number of permutations satisfying the above conditions). Luke is an altruistic hacker, so he wants to provide distinct license keys for all his 2000 friends. However, $k$ might be less than 2000.
Help Luke by printing $r = \min(k, 2000)$ distinct valid license keys.
A permutation of length $n$ is an array consisting of $n$ distinct integers from 1 to $n$ in arbitrary order. For example, $[2, 3, 1, 5, 4]$ is a permutation, but $[1, 2, 2]$ is not a permutation (2 appears twice in the array), and $[1, 3, 4]$ is also not a permutation ($n = 3$ but there is 4 in the array).
A permutation $p_1, p_2, \ldots, p_n$ is bitonic if there exists an index $i$ ($1 \le i \le n$) such that
- $p_{j-1} \le p_j$ for $2 \le j \le i$;
- $p_j \ge p_{j+1}$ for $i \le j \le n-1$.
A cycle is a subset $C \subseteq \{1, 2, \ldots, n\}$ such that
- $C$ is non-empty;
- if $x \in C$, then $p_x \in C$;
- $C$ is minimal, i.e., there does not exist a cycle $C'$ such that $C' \subsetneq C$.
Input Format
The input consists of a single line containing two integers $n, m$ ($1 \le m \le n \le 100$) — the length of the permutations and the target number of cycles.
Output Format
In the first line, print a single integer $r$: the number of permutations you are going to print. Note that $r$ must be $\min(k, 2000)$ as defined in the statement.
Then, print $r$ lines. Each line must contain a bitonic permutation of length $n$, with $m$ cycles. The permutations must be distinct.
Explanation/Hint
#### Explanation of sample 1.
In the example, there are 9 valid license keys (i.e., bitonic permutations of length 6, with 3 cycles). For example, $[3, 5, 6, 4, 2, 1]$ is bitonic (in the above definition, $i = 3$), and it has 3 cycles: $\{1, 3, 6\}$, $\{2, 5\}$, $\{4\}$. So you have to print $r = \min(9, 2000) = 9$ such permutations.