#include using namespace std; #define ll long long #define eb emplace_back #define debug(...) fprintf(stderr,__VA_ARGS__) #define rep(i,x,y) for(int i=(x);i<=(y);i++) #define per(i,y,x) for(int i=(y);i>=(x);i--) bool Memst; namespace cyzz { #define N 200005 #define mod 998244353 #define B 500 inline void Add(int &x,int y){x+=y;(x>=mod)&&(x-=mod);} int fac[N],inv[N],pw[N]; int bel[N]; void init() { inv[0]=inv[1]=1; rep(i,2,N-5) inv[i]=1ll*(mod-mod/i)*inv[mod%i]%mod; fac[0]=pw[0]=1; rep(i,1,N-5) { inv[i]=1ll*inv[i-1]*inv[i]%mod; fac[i]=1ll*fac[i-1]*i%mod; pw[i]=2ll*pw[i-1]%mod; } rep(i,1,N-5) bel[i]=(i-1)/B+1; } inline int C(int x,int y) { if(xa[i].l) Add(now,mod-C(R,L)),L--; while(Ra[i].r) Add(now,C(R-1,L)),now=1ll*now*inv[2]%mod,R--; ans[a[i].id]=1ll*ans[a[i].id]*now%mod; } rep(i,1,n) printf("%d\n",ans[i]); } }bool Memed; int main() { // freopen("in.in","r",stdin); // freopen("out.out","w",stdout); cyzz::MAIN(); debug("%.2lfms %.2lfMB",1.0*clock()/CLOCKS_PER_SEC*1000, 1.0*abs(&Memed-&Memst)/1024/1024); }