#include "bits/stdc++.h"
using namespace std;
#define ll long long
#define ld long double
const ll M = 1e9 + 7;
ll t, n, m;
ll pow(ll n, ll m)
{
ll res = 1;
while (m)
{
if (m & 1)
res = (res * n) % M;
n = (n * n) % M;
m >>= 1;
}
return res;
}
int32_t main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> t;
while (t--)
{
cin >> n >> m;
ll x = pow(2, n) - 1;
ll ans = pow(x, m) % M;
cout << ans << '\n';
}
}
I2luY2x1ZGUgImJpdHMvc3RkYysrLmgiCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIGxkIGxvbmcgZG91YmxlCmNvbnN0IGxsIE0gPSAxZTkgKyA3OwoKbGwgdCwgbiwgbTsKCmxsIHBvdyhsbCBuLCBsbCBtKQp7CiAgICBsbCByZXMgPSAxOwogICAgd2hpbGUgKG0pCiAgICB7CiAgICAgICAgaWYgKG0gJiAxKQogICAgICAgICAgICByZXMgPSAocmVzICogbikgJSBNOwogICAgICAgIG4gPSAobiAqIG4pICUgTTsKICAgICAgICBtID4+PSAxOwogICAgfQogICAgcmV0dXJuIHJlczsKfQoKaW50MzJfdCBtYWluKCkKewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oMCk7CiAgICBjaW4udGllKDApOwogICAgY291dC50aWUoMCk7CgogICAgY2luID4+IHQ7CiAgICB3aGlsZSAodC0tKQogICAgewogICAgICAgIGNpbiA+PiBuID4+IG07CgogICAgICAgIGxsIHggPSBwb3coMiwgbikgLSAxOwogICAgICAgIGxsIGFucyA9IHBvdyh4LCBtKSAlIE07CgogICAgICAgIGNvdXQgPDwgYW5zIDw8ICdcbic7CiAgICB9Cn0=