#include using namespace std; #define int long long long long rev[400001]; long long sum[400001]; constexpr int mod=998244353; inline long long qpow(int base,int p=mod-2) { long long ans=1; while(p) { if(p&1) ans=ans*base%mod; base=1ll*base*base%mod; p>>=1; } return ans; } constexpr int siz=447; struct query { int n,m; int id; long long ans; bool operator <(query t)const { if((n/siz)^(t.n/siz)) return nt.m; return m>t; for(int i=1;i<=t;i++) { cin>>q[i].n>>q[i].m; q[i].n--,q[i].m--; q[i].id=i; } sort(q+1,q+1+t); n=1; for(int i=1;i<=t;i++) { while(nq[i].m) sub_m(); while(mq[i].n) sub_n(); q[i].ans=(ans+1)%mod; } sort(q+1,q+1+t,[](query a,query b){return a.id