#CF848D. 震荡世界

震荡世界

震荡世界

  • 时间限制:2 秒
  • 内存限制:256 MiB

题目描述

一个“世界”是一个无向简单图 GG,其中有两个不能交换的特殊顶点 s(G)s(G) 与 t(G)t(G)。初始世界仅有这两个顶点以及边 (s,t)(s,t)。

对初始世界进行恰好 nn 次变化。每次变化加入一个新顶点 ww,选择当前图中的一条边 (u,v)(u,v),再加入边 (u,w)(u,w) 与 (v,w)(v,w)。原有边不会删除,同一条边可以在多次变化中被选择。

最终图的 ss 到 tt 最小割容量为 mm,即至少删除 mm 条边才能使 ss 与 tt 不连通。

若两个世界同构,并且存在一个同构映射分别把一个世界的 s,ts,t 映射到另一个世界的 s,ts,t,则称它们相似。求能够得到的两两不相似世界数量,对 109+710^9+7 取模。

输入格式

输入一行两个整数 n,mn,m,分别表示变化次数和最终最小割容量。

输出格式

输出满足条件的不相似世界数量,对 109+710^9+7 取模。

样例输入 1

3 2

样例输出 1

6

样例输入 2

4 4

样例输出 2

3

样例输入 3

7 3

样例输出 3

1196

样例输入 4

31 8

样例输出 4

64921457

数据范围

对于所有数据:1≤n,m≤501\le n,m\le 50。

子任务编号 分值 特殊限制
1 20 n≤6n\le 6
2 40 n≤20n\le 20
3 无特殊限制