#include using namespace std; #include #define elif else if #define rep(i,n) for (int i=0;i<(n);i++) using mint=atcoder::modint998244353; vectorpow2,fac,finv; mint binom(int n,int k){ if(n<0||k<0||k>n)return mint(0); return fac[n]*finv[k]*finv[n-k]; } int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int N=200010; int B=450; int mod=998244353; fac.resize(N); finv.resize(N); pow2.resize(N); fac[0]=1; for(int i=1;i=0;i--)finv[i]=finv[i+1]*(i+1); pow2[0]=1; for(int i=1;i>> bucket(B); int T; cin>>T; vector ans(T,1); for(int i=0;i>n>>m; bucket[m*B/N].push_back({n-1,m-1,i}); ans[i]=pow2[n]-1; } for(int i=0;imi){ res-=binom(n,m); m-=1; } while(nni){ res=inv2*(res+binom(n-1,m)); n-=1; } ans[i]*=res; } } for(int i=0;i