#codefestival2016finalf. [codefestival_2016_final_f]Road of the King

[codefestival_2016_final_f]Road of the King

题目描述

Takahashi王国有NN个城镇。它们方便地标号为11NN

Takahashi国王计划进行为期MM天的巡视旅行。他会确定一个城镇序列cc,并在第ii天访问城镇cic_i。也就是说,在第ii天,他将从当前位置前往城镇cic_i。如果他已经在城镇cic_i,他将停留在那个城镇。他在巡视开始之前的位置是城镇11,也就是首都。巡视以不返回首都的方式在城镇cMc_M结束。

问题是这个王国没有铺设道路。他决定通过在旅行时自己铺设道路来解决这个问题。当他从城镇aa前往城镇bb时,将会有一条新铺设的单行道从城镇aa通往城镇bb

因为他关心他的人民,所以他希望在他的旅行结束后满足以下条件:"可以通过穿越他铺设的道路从任意一个城镇到达任意另一个城镇"。有多少个城镇序列cc满足这个条件?

约束条件

  • 2N3002≤N≤300
  • 1M3001≤M≤300

输入

输入以以下格式从标准输入给出:

NN MM

输出

打印满足条件的城镇序列cc的数量,取模为10000000071000000007

示例输入 1

3 3

示例输出 1

如下所示,只有当c=(2,3,1)c = (2,3,1)c=(3,2,1)c = (3,2,1)时,才满足该条件。例如c=(2,3,2)c = (2,3,2)c=(2,1,3)c = (2,1,3)c=(1,2,2)c = (1,2,2)等序列不满足该条件。

示例输入 2

150 300

示例输出 2

734286322

示例输入 3

300 150

示例输出 3