石子阵列
题号:NC17388
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

xb有m种石子,每种无限个,Ta想从这些石子中取出n个,并按顺序排列起来,为了好看,相邻的石子不能相同。xb想知道有多少种排列的方法。

输入描述:

第一行有两个正整数n,m。

输出描述:

第一行一个整数,表示在m种石子中取出n个的排列方案数模1000000007后的值

示例1

输入

复制
1 1

输出

复制
1
示例2

输入

复制
2 3

输出

复制
6
示例3

输入

复制
3 3

输出

复制
12

备注:

对于100%的测试数据:
1 ≤ n, m ≤ 1000
数据量较大,注意使用更快的输入输出方式。