#include<iostream>
#include<cmath>
#define MOD 1000000007
using namespace std;
long long int fast_exp1(long long int base,long long int exp);
int main()
{
int test;
cin>>test;
while(test--)
{
long long int n,k;
cin>>n>>k;
long long int a1=(k*(k-1))%MOD;
long long int a2=(fast_exp1(k-1,2)-(k-2));
long long int a3=fast_exp1(a2,n-1);
long long int ans=(a1*a3)%MOD;
cout<<ans<<"\n";
}
return 0;
}
long long int fast_exp1(long long int base,long long int exp) {
long long int res=1;
while(exp>0) {
if(exp%2==1) res=(res*base)%MOD;
base=(base*base)%MOD;
exp/=2;
}
return res%MOD;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPGNtYXRoPgojZGVmaW5lIE1PRCAxMDAwMDAwMDA3CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmxvbmcgbG9uZyBpbnQgZmFzdF9leHAxKGxvbmcgbG9uZyBpbnQgYmFzZSxsb25nIGxvbmcgaW50IGV4cCk7CmludCBtYWluKCkKewogICAgaW50IHRlc3Q7CiAgICBjaW4+PnRlc3Q7CiAgICB3aGlsZSh0ZXN0LS0pCiAgICB7CiAgICAgICAgbG9uZyBsb25nIGludCBuLGs7CiAgICAgICAgY2luPj5uPj5rOwogICAgICAgIGxvbmcgbG9uZyBpbnQgYTE9KGsqKGstMSkpJU1PRDsKICAgICAgICBsb25nIGxvbmcgaW50IGEyPShmYXN0X2V4cDEoay0xLDIpLShrLTIpKTsKICAgICAgICBsb25nIGxvbmcgaW50IGEzPWZhc3RfZXhwMShhMixuLTEpOwogICAgICAgIGxvbmcgbG9uZyBpbnQgYW5zPShhMSphMyklTU9EOwogICAgICAgIGNvdXQ8PGFuczw8IlxuIjsKCiAgICB9CiAgICByZXR1cm4gMDsKfQpsb25nIGxvbmcgaW50IGZhc3RfZXhwMShsb25nIGxvbmcgaW50IGJhc2UsbG9uZyBsb25nIGludCBleHApIHsKICAgIGxvbmcgbG9uZyBpbnQgIHJlcz0xOwogICAgd2hpbGUoZXhwPjApIHsKICAgICAgIGlmKGV4cCUyPT0xKSByZXM9KHJlcypiYXNlKSVNT0Q7CiAgICAgICBiYXNlPShiYXNlKmJhc2UpJU1PRDsKICAgICAgIGV4cC89MjsKICAgIH0KICAgIHJldHVybiByZXMlTU9EOwp9