#include #define rep(i,n) for(int i=(0);i<(n);i++) using namespace std; typedef long long ll; template bool chmax(T &a, const T &b) { if (a bool chmin(T &a, const T &b) { if (a>b) { a=b; return 1; } return 0; } // mod calc typedef long long ll; const ll MOD = 998244353;; ll powmod(ll a, ll b){ if(b == 0) return 1; if(b & 1) { return a * powmod(a, b - 1) % MOD; } else { ll d = powmod(a, b / 2) % MOD; return d * d % MOD; } } ll sub(ll a, ll b){ return a + MOD - b; } ll inv(ll a){ return powmod(a, MOD - 2); } // X^(-1) = X^(p-2) (mod p) (Fermat's little theorem) int main(){ cin.tie(0); ios::sync_with_stdio(false); int t; cin >> t; vector n(t), k(t); rep(i, t) cin >> n[i] >> k[i]; rep(i, t){ ll ans = n[i]; ans *= powmod(2ll, n[i] * k[i]); ans %= MOD; ll x = powmod(inv(2ll), k[i]); ans *= (1 + MOD - x) % MOD; ans %= MOD; cout << ans << endl; } }