#include using namespace std; const long long mod=998244353; #pragma GCC optimize(2) int t,m,n; long long qpow(long long a,long long b){ if(b==0)return 1; if(b==1)return a; long long t=qpow(a,b/2); return t*t%mod*qpow(a,b%2)%mod; }long long fc[400005]={1},inv[400005]={1}; long long c(int a,int b){ return fc[a]*inv[b]%mod*inv[a-b]%mod; } int main(){ ios::sync_with_stdio(0); cin.tie(0);cout.tie(0); for(int i=1;i<=4e5;i++)fc[i]=fc[i-1]*i%mod,inv[i]=qpow(fc[i],mod-2); cin>>t; while(t--){ cin>>n>>m; long long s=qpow(2,n),tmp=qpow(n,mod-2),ans=0; s=(s+mod-1)%mod; //ans=(ans+s*qpow(m,n))%mod; for(int i=1;i<=m;i++){ ans=(ans+c(n-1,i-1)*s)%mod; } cout<