#include <iostream>
using namespace std;
const long m = 1e9 + 7;
inline long fastModExpo(long a, long b) {
long y = 1;
while (b) {
if (b & 1) {
y *= a;
y %= m;
}
b >>= 1;
a *= a;
a %= m;
}
return y;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int tt;
cin >> tt;
while (tt--) {
long n, s;
cin >> n >> s;
long ans = fastModExpo(n, m - 2);
ans *= s;
ans %= m;
ans = fastModExpo(ans, n);
cout << ans << '\n';
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGxvbmcgbSA9IDFlOSArIDc7CgppbmxpbmUgbG9uZyBmYXN0TW9kRXhwbyhsb25nIGEsIGxvbmcgYikgewogICAgbG9uZyB5ID0gMTsKICAgIHdoaWxlIChiKSB7CiAgICAgICAgaWYgKGIgJiAxKSB7CiAgICAgICAgICAgIHkgKj0gYTsKICAgICAgICAgICAgeSAlPSBtOwogICAgICAgIH0KICAgICAgICBiID4+PSAxOwogICAgICAgIGEgKj0gYTsKICAgICAgICBhICU9IG07CiAgICB9CiAgICByZXR1cm4geTsKfQoKaW50IG1haW4oKSB7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUobnVsbHB0cik7CiAgICBjb3V0LnRpZShudWxscHRyKTsKICAgIGludCB0dDsKICAgIGNpbiA+PiB0dDsKICAgIHdoaWxlICh0dC0tKSB7CiAgICAgICAgbG9uZyBuLCBzOwogICAgICAgIGNpbiA+PiBuID4+IHM7CiAgICAgICAgbG9uZyBhbnMgPSBmYXN0TW9kRXhwbyhuLCBtIC0gMik7CiAgICAgICAgYW5zICo9IHM7CiAgICAgICAgYW5zICU9IG07CiAgICAgICAgYW5zID0gZmFzdE1vZEV4cG8oYW5zLCBuKTsKICAgICAgICBjb3V0IDw8IGFucyA8PCAnXG4nOwogICAgfQogICAgcmV0dXJuIDA7Cn0K