P12614 [RMI 2023] AA Tree
题目背景
翻译来自 [LibreOJ](https://loj.ac/p/4799)。
题目描述
**题目译自 [Romanian Master of Informatics 2023](https://rmi.lbi.ro/rmi_2023/) Day1 T1 「[AA Tree](https://csacademy.com/contest/rmi-2023-day-1/task/aa-tree/)」**
> 由于原始问题中对二叉搜索树的定义有误,本题描述略有调整。
**AA 树**是一种特殊的二叉搜索树,每个节点都拥有一个**值**和一个**层级**。值的排列遵循普通的二叉搜索树规则:
1. 每个左子节点(以及左子树中的所有节点)的值都小于等于其父节点的值。
2. 每个右子节点(以及右子树中的所有节点)的值都大于等于其父节点的值。
层级则需满足以下条件:
1. 所有叶子节点的层级为 $1$。
2. 每个左子节点的层级比其父节点小 $1$。
3. 每个右子节点的层级等于或比其父节点小 $1$。
4. 每个右孙节点的层级必须严格小于其祖父节点的层级。
5. 层级大于 $1$ 的每个节点必须有两个子节点。
下面展示了五棵 **AA 树**的样例,分别包含 $3$、$5$、$5$、$11$ 和 $11$ 个节点。为了更清晰地展示,与父节点层级相同的右子节点用红色标出。

给定两个数字 $N$ 和 $L$,请你计算将 $1$、$2$、...、$N$ 这 $N$ 个值排列成一棵 **AA 树**,且恰好有 $L$ 个层级的方法有多少种?
输入格式
输入只有一行,包含两个用空格分隔的整数 $N$ 和 $L$。
输出格式
输出排列方法的数量,对 $10^9 + 7$ 取模。
说明/提示
### 样例 1 解释
两种可能的排列方式如上图中的第 $2$ 和第 $3$ 棵树所示。
### 数据范围与提示
对于所有输入数据,满足:
* $1 \leq L \leq 9$
* $1 \leq N \leq 10\ 000$
详细子任务附加限制及分值如下表所示。
| 子任务 | 分值 | 附加限制 |
| :---: | :---: | :--: |
| $1$ | $19$ | $L \leq 4$|
| $2$ | $34$ | $5 \leq L \leq 7$ |
| $3$ | $47$ | 无附加限制 |