三位出题人
题号:NC277551
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

三位出题人走在路上,他们要给 m 个人分配 n 个题的工作,第一位出题人认为不应该让所有人同时去参与同一个题的工作,第二位出题人认为每个题都应该有至少一个人参与,第三位出题人认为可以有人不分配到任何题目。

你想知道他们有多少种分配任务的方案。

注意一个人可以被分配多个题目的工作,一个题目可以不止有一个人负责。

输入描述:

第一行一个整数 T (1\leq T\leq 100)

接下来 T 行,每行两个整数 n, m (1\leq n, m\leq 10^{6})

输出描述:

T 行,每行一个整数表示答案,并对 10^9 + 7 取模。
示例1

输入

复制
2
1 3
100 3

输出

复制
6
876928896