#include<bits/stdc++.h>
#define pb push_back
#define mp make_pair

using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<int,int> ii;;
const int maxn = 2e5 + 5;
const int mod = 998244353;

int n , p[maxn];
ii a[maxn];
int res = 0 , oy[maxn];

int bit[maxn];

void update(int x){
	for( ; x <= n ; x += x & -x)bit[x]++;
}

int query(int x){
	int res = 0;
	for( ; x > 0 ; x &= x - 1)res += bit[x];
	return res;
}

void add(int & x , ll y){
	if(y >= mod)y %= mod;
	x += y;if(x >= mod)x -= mod;
	if(x < 0)x += mod;
}

void Solve(){
	sort(a + 1 , a + n + 1);
	for(int i = 1 ; i <= n ; ++i){
		oy[i] = a[i].second;
	}
	sort(oy + 1 , oy + n + 1);
	for(int i = 1 ; i <= n ; ++i){
		int y = lower_bound(oy + 1 , oy + n + 1 , a[i].second) - oy;
		add(res , p[query(y)]);
		add(res , p[i - query(y) - 1]);
		add(res , -p[i]);
		add(res , -p[n - i + 1]);
		update(y);
	}
	fill_n(bit,maxn,0);
	for(int i = n ; i >= 1 ; --i){
		int y = (lower_bound(oy + 1 , oy + n + 1 , a[i].second) - oy);
		add(res , p[query(y)]);
		add(res , p[n - i - query(y)]);
		update(y);
	}
	fill_n(bit,maxn,0);
}

int main(){
	ios_base::sync_with_stdio(0);
	cin.tie(0);	
	cin >> n;
	p[0] = 1;for(int i = 1 ; i <= n ; ++i)p[i] = p[i - 1] * 2 % mod;
	for(int i = 1 ; i <= n ; ++i){
		cin >> a[i].first >> a[i].second;
	}
	add(res , (ll)n * p[n]);
	add(res , -n);
	Solve();
	cout << res;
}
