#include #define ll long long #define R register #define mk(x,y) make_pair(x,y) #define PII pair using namespace std; const int N=2e5+5,mod=998244353; inline ll qmul(ll a,ll b){ ll ans=1; while(b){ if(b&1)ans=ans*a%mod; a=(a*a)%mod;b>>=1; } return ans; } ll fac[N],inv[N]; inline void init(int x){ fac[0]=fac[1]=inv[0]=inv[1]=1; for(R int i=2;i<=x;++i)fac[i]=fac[i-1]*i%mod; inv[x]=qmul(fac[x],mod-2); for(R int i=x-1;i>1;--i)inv[i]=inv[i+1]*(i+1)%mod; } inline ll C(ll a,ll b){ if(a>1,_l=1,_r=1;ll res=1;ll ans[N]; struct ASK{int l,r,id;}q[N]; inline bool cmp(ASK x,ASK y){return (x.l/block!=y.l/block)?(x.l/blocky.r;} inline void addl(){res=(res*2%mod-C(_l-1,_r-1)+mod)%mod;++_l;} inline void dell(){res=(res+C(_l-2,_r-1))%mod*inv2%mod;--_l;} inline void addr(){res=(res+C(_l-1,_r))%mod;++_r;} inline void delr(){res=(res-C(_l-1,_r-1)+mod)%mod;--_r;} int main(){ ios::sync_with_stdio(0);cin.tie(0),cout.tie(0); cin>>T;block=(sqrt(200000));init(N-1); for(R int i=1;i<=T;++i)cin>>q[i].l>>q[i].r,q[i].id=i; sort(q+1,q+T+1,cmp); for(R int i=1;i<=T;++i){ while(_lq[i].l)dell(); while(_rq[i].r)delr(); ans[q[i].id]=res*(qmul(2,q[i].l)-1+mod)%mod; } for(R int i=1;i<=T;++i)cout<