牛牛和牛可乐的赌约
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

牛可乐发明了一种n面骰子(点数分别从,掷出每面的概率为)去给牛牛玩,因为牛牛是个欧皇,所以他想测试一下牛牛的人品,他告诉牛牛,让牛牛投次骰子,牛牛如果全部投出点数为的面就算牛牛赢,牛牛很相信自己的人品,就和牛可乐赌一包辣条,说自己肯定可以全部投出点数为点面,但是牛牛又有点害怕自己打赌输了,想让你提前帮他计算一下他输概率有多少?

输入描述:

有多组输入样例,第一行为样例组数
接下来t行每行有一个整数n和m,分别表示骰子的面数和牛牛的投掷次数

输出描述:

输出t行,每行输出为分数p/q mod 1e9+7的形式

示例1

输入

复制
1
2 1

输出

复制
500000004

备注:

数据较大,建议使用较快的输入输出