#include using namespace std; #define ll long long const ll maxn=10000005; const ll mod=998244353; ll s[maxn+5],p[maxn+5]; ll qmksm(ll a,ll b){ ll ans,cur,i,j,k; ans=1; cur=a; while(b){ if(b&1) ans=ans*cur%mod; cur=cur*cur%mod; b>>=1; } return ans; } ll ny(ll a){ return qmksm(a,mod-2); } void init(){ ll i,j,k; s[0]=1; for(i=1;i<=maxn;i++) s[i]=s[i-1]*i%mod; p[maxn]=ny(s[maxn]); for(i=maxn-1;i>=0;i--) p[i]=p[i+1]*(i+1)%mod; } ll cal(ll n,ll m){ ll i,j,k; if(m<0 or m>n) return 0; if(n>maxn) return 0; return s[n]*p[m]%mod*p[n-m]%mod; } ll luc(ll n,ll m){ ll i,j,k; if(m==0) return 1; return luc(n/mod,m/mod)*cal(n%mod,m%mod)%mod; } int main(){ ll t,n,m,i,j,k; init(); scanf("%lld",&t); while(t--){ scanf("%lld%lld",&n,&m); printf("%lld\n",luc(n,m)); } return 0; }