#include #include #include #include const int MOD = 1000000000 + 7; int binpow (int a, int b) { if (b == 0) { return 1; } if (b == 1) { return a; } long long q = binpow(a, b / 2); q = q * q % MOD; if (b % 2 == 0) return q; else return q * a % MOD; } int main () { std::ios_base::sync_with_stdio(false); int test_cases; std::cin >> test_cases; assert(1 <= test_cases && test_cases <= 100); while (test_cases--) { int n, k; std::cin >> n >> k; assert(1 <= n && n <= 1000000000); assert(1 <= k && k <= 1000000000); if (k == 1) { if (n == 1) { std::cout << 1 << std::endl; } else { std::cout << 0 << std::endl; } } else { long long answer = k * 1LL * binpow(k - 1, n - 1) % MOD; std::cout << answer << std::endl; } } return 0; }