//day13 E /* 1.ans=(2^n-1)*(\sum C(n-1,0)+C(n-1,1)+...+C(n-1,m-1)) 2.??? */ #include using namespace std; typedef long long ll; const int N=2e5+10,mod=998244353; int n,m; int lenb; int block[N]; ll ans[N]; ll f[N],finv[N]; struct Node{ int l,r,id; bool operator <(const Node &e)const{ if(block[l]==block[e.l]) return (block[l]^1)?(re.r); else return block[l]>=1; } return mul; } void init(){ f[0]=finv[0]=1; for(int i=1;i<=200000;i++){ f[i]=f[i-1]*i%mod; finv[i]=fp(f[i],mod-2); } } ll C(int a,int b){ if(a>t; init(); for(int i=1;i<=t;i++){ cin>>n>>m; q[i]={m-1,n-1,i}; } lenb=sqrt(200000); for(int i=1;i<=200000;i++) block[i]=i/lenb+1; sort(q+1,q+t+1); int l=0,r=0; ll res=1; for(int i=1;i<=t;i++){ while(rq[i].r) r--,res=(res+C(r,l))%mod*finv[2]%mod; while(lq[i].l) res=(res-C(r,l)+mod)%mod,l--; ans[q[i].id]=res*(fp(2,q[i].r+1)-1+mod)%mod; } for(int i=1;i<=t;i++) cout<