#include<bits/stdc++.h>
using namespace std;
#define int long long
const int MOD= 998244353;
int n;
int l[2000094],r[2000094];
struct AA
{
int l,r;
}t[3323213];
queue<AA > q;
signed main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>l[i]>>r[i];
t[i]={l[i],r[i]};
}
int x=1,y=0;
for(int i=1;i<=n;i++)
{
for(int j=x;j<=i;j++)
{
if(t[j].r==i||t[i].l==j)
{
y=i-1;
q.push({x,y});
x=i;
break;
}
}
}
int ans=1;
q.push({x,n});
while(q.size())
{
AA tt=q.front();
cout<<tt.l<<" "<<tt.r<<endl;
q.pop();
for(int i=1;i<=tt.r-tt.l;i++)
{
ans*=2;
ans=ans%MOD;
}
ans=ans%MOD;
}
cout<<ans;
return 0;
}
样例可以过