第二次女生节
题号:NC206137
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

众所周知,ACM协会的学长是没有女生节可以过的,因为ACM协会18级没!有!学!姐!同时也没有想要加入协会的组织部宣传部提前养老的学妹,所以可怜的ACM协会在女生节只能写出这一段幻想的比赛题目。所以!在今天!本次比赛中!ACM的学长(&学弟)们拥有了女生节!!
       这一天,ACM协会的学长买了很多礼物,因此,他们决定将它们包装在盒子里,然后发给协会的女生(们)。
       学长们买了n种礼物和m个礼物盒子,每种礼物完全相同并且数量巨大,我们可以认为每种礼物的数量是无限的,两种不同的礼物是可以区分的。m个礼物盒子是为m个协会的女生而准备,这m个礼物盒子也是不同的,是可以区分的。学长们想要用以下规则来包装礼物:

    1.在同一个礼物盒子里,每种种类的礼物最多只能有一个,可以没有该种礼物。所以每个礼物盒子应该包含不同种类的礼物,允许有空盒子。
    2.每一种礼物至少应装入一个盒子。

       现在学长想知道有多少种包装礼物的不同方法,请帮他们计算一下这个数字。因为答案可能非常大,所以最终结果应对1e9+7取模。

输入描述:

输入数据包含多组。输入仅一行,包括两个整数n和m(0<=n,m<=10^9),n代表礼物种类数量,m代表礼物盒子数量。

输出描述:

 对于每组数据,输出仅一行,输出按学长的规则可以有的礼物包装方法,通过对1e9+7取模得到。
示例1

输入

复制
1 3
2 2

输出

复制
7
9