#include<bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int i = 0; i < n; i++)
using P = pair<int, int>;
using ll = long long;
const int md = 998244353;
const int mx = 200005;
int n, a[mx], b[mx];
ll ans, e[mx];
P pr[mx];
struct BIT{
	vector<int> dat;
	int sz;
	BIT(int n){
		for(sz = 1; sz < n; sz *= 2);
		dat.resize(++sz);
	}
	int q(int n){
		int ret = 0;
		for(int i = n; i > 0; i -= i&-i) ret += dat[i];
		for(int i = n; i < sz; i += i&-i) dat[i]++;
		return ret;
	}
};
int main(){
	scanf("%d", &n);
	rep(i,n) e[i+1] = (e[i] * 2 + 1) % md;
	rep(i,n) scanf("%d%d", &pr[i].first, &pr[i].second);
	sort(pr,pr+n);
	rep(i,n) pr[i] = P {pr[i].second,i+1};
	sort(pr,pr+n);
	BIT bt1(n), bt2(n);
	rep(i,n) a[i] = bt1.q(pr[i].second);
	rep(i,n) b[n-1-i] = bt2.q(pr[n-1-i].second);
	rep(i,n) (ans += (e[i-a[i]] * e[n-i-1-b[i]] + e[a[i]] * e[b[i]])) %= md;
	printf("%lld\n", (e[n] * (n-2) + n*2 + md - ans) % md);
}