在逛农贸市场时,Busy Beaver 停下来观看一位街头魔术师的表演。魔术师展示了一排 $N$ 个盒子,里面装着 $M$ 位非负整数 $a_1, a_2, \dots, a_N$,其中对于所有 $1 \le i \le N$,满足 $0 \le a_i < 2^M$。
魔术师通过一系列“魔法交换”将这些盒子按非递减顺序排列。在一次魔法交换中,魔术师选择一个索引 $i$ ($1 \le i < N$),使得 $a_i$ 和 $a_{i+1}$ 的二进制表示恰好相差一位,然后交换 $a_i$ 和 $a_{i+1}$。
观看表演时,Busy Beaver 对这个戏法的局限性产生了好奇。在所有 $2^{MN}$ 种可能的初始值 $a_1, a_2, \dots, a_N$ 中,有多少种序列可以通过魔法交换排序成非递减顺序?由于这个数字可能很大,Busy Beaver 只需得到其对 $10^9 + 7$ 取模的结果。
输入格式
输入的第一行也是唯一一行包含两个整数 $N$ 和 $M$ ($1 \le N, M \le 50$)。
输出格式
输出一个整数:可以通过魔法交换排序的序列数量,对 $10^9 + 7$ 取模。
子任务
本题共有五个子任务:
- (10 分):$1 \le N, M \le 5$。
- (20 分):$1 \le M \le 4$。
- (10 分):$1 \le M \le 10$。
- (10 分):$1 \le M \le 15$。
- (50 分):无附加限制。
样例
样例输入 1
3 2
样例输出 1
44
样例输入 2
50 1
样例输出 2
898961331
样例输入 3
10 10
样例输出 3
649370314
说明
在第一个样例中,一个可以通过魔法交换排序的序列是 $[a_1, a_2, a_3] = [3, 1, 2]$,过程如下:
- 选择 $i = 1$。注意 $a_1 = 3$ 和 $a_2 = 1$ 的二进制表示恰好相差一位,因此这是一次魔法交换。序列变为 $[1, 3, 2]$。
- 选择 $i = 2$。注意 $a_2 = 3$ 和 $a_3 = 2$ 的二进制表示恰好相差一位,因此这是一次魔法交换。序列变为 $[1, 2, 3]$,此时已呈非递减顺序。
在总共 $2^{3 \cdot 2} = 64$ 种初始序列中,有 44 种可以通过魔法交换排序。