import sys from collections import deque, Counter input = lambda: sys.stdin.readline().rstrip() ii = lambda: int(input()) mi = lambda: map(int, input().split()) li = lambda: list(mi()) inf = 2 ** 63 - 1 mod = 998244353 class Combinatorics(): def __init__(self, mod, maxi): self.mod = mod self.maxi = maxi self.facs = [1] * (maxi + 1) self.factinvs = [1] * (maxi + 1) self.invs = [1] * (maxi + 1) for i in range(2, self.maxi + 1): self.facs[i] = ((self.facs[i-1] * i) % self.mod) self.invs[i] = (-self.invs[self.mod % i] * (self.mod // i)) % self.mod self.factinvs[i] = (self.factinvs[i-1] * self.invs[i]) % self.mod def choose(self, n, k) -> int: if k < 0 or k > n: return 0 if k == 0 or k == n: return 1 k = min(k, n - k) return (((self.facs[n] * self.factinvs[k]) % self.mod) * self.factinvs[n-k]) % self.mod def perm(self, n, k) -> int: return (self.choose(n, k) * self.facs[k]) % self.mod def homop(self, n, k) -> int: if n == k == 0: return 1 return self.choose(n + k - 1, k) t = 500 maxi = 2 * 10 ** 5 C = Combinatorics(mod, maxi) pre = [[0] * (maxi // t + 1) for _ in range(maxi // t + 1)] for i in range(0, maxi + 1, t): for j in range(0, maxi + 1, t): if j // t > 0: pre[i // t][j // t] += pre[i // t][j // t - 1] for k in range(j - t + 1, j + 1): pre[i // t][j // t] += C.choose(i, k) else: pre[i//t][j//t] = 1 def Csum(n, k): nnow = (n // t) * t know = (k // t) * t now = pre[n // t][k // t] for i in range(n - nnow): now = 2 * now - C.choose(nnow + i, know) now %= mod for i in range(k - know): now = now + C.choose(n, know + i + 1) now %= mod return now def solve(): n, m = mi() ans = Csum(n - 1, m - 1) * (pow(2, n, mod) - 1) ans %= mod print(ans) for _ in range(ii()): solve()