#include <bits/stdc++.h>
using namespace std;
int N; 
int A[200010], B[200010]; 
long long Pow[200010]; 
pair<int, int> P[200010];
set<int> S;
map<int, int> M;
long long mod = 998244353; 
void add(int a, int b){
	int x = a; 
	while(x <= N){
		B[x] += b; x += x & -x; 
	}
}
int sum(int a){
	int res = 0; 
	int x = a; 
	while(x > 0){
		res += B[x]; x -= x & -x;
	}
	return res; 
}
int main(){
	Pow[0] = 1; 
	for(int i = 1; i <= 200005; i++) Pow[i] = Pow[i-1] * 2 % mod;
	cin >> N; 
	for(int i = 1; i <= N; i++){
		cin >> P[i].first >> P[i].second;
		S.insert(P[i].second); 
	}
	sort(P+1, P+N+1); 
	int it = 0; 
	for(auto i = S.begin(); i != S.end(); i++){
		M[*i] = ++it;
	}
	for(int i = 1; i <= N; i++){
		A[i] = M[P[i].second]; 
	}
	long long all = Pow[N] * N % mod; 
	long long impo = 0;
	for(int i = 1; i <= N; i++){
		int bottom = A[i] - 1;
		int left = i - 1;  
		int BL = sum(A[i]); 
		int BR = bottom - BL; 
		int TL = left - BL; 
		int TR = N - 1 - BL - BR - TL; 
		add(A[i], 1); 
		long long tmp = 0; 
		tmp += Pow[BL + BR] + Pow[BR + TR] + Pow[TR + TL] + Pow[TL + BL]; 
		tmp += mod * 4 - Pow[BL] - Pow[BR] - Pow[TL] - Pow[TR] + 1; 
		impo += tmp; impo %= mod; 
	} 	
	cout << (mod + all - impo) % mod << endl;
}