#include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); long long H,W,N; cin >> N >> H >> W; vector X,Y; while(N--){ long long x,y; cin >> x >> y,x--,y--; X.push_back(x),Y.push_back(y); } N = X.size(); sort(X.begin(),X.end()),sort(Y.begin(),Y.end()); auto f = [&](long long n,vector &A) -> long long { map> M; int half = n/2; for(auto a : A){ if(a <= half){ M[0].first--; M[0].second += a+1; M[a+1].first += 2; M[a+n/2+1].first--; M[a+(n+1)/2+1].first--; } else{ if(a < n-1) M[a+1].first += 2; long long a0 = n-1-a; M[0].second += a0; M[0].first++; M[(a+n/2+1)%n].first--; M[(a+(n+1)/2+1)%n].first--; } } long long ret = 0,now = 0,add = 0,back = -1; M[n] = {0,0}; for(auto [k,v] : M){ long long move = k-1-back; now += add*move; ret = max(ret,now); if(k == n) break; auto [v1,v2] = v; now += v2,add += v1,back = k; now += add,ret = max(ret,now); } return ret; }; cout << f(H,X)+f(W,Y) << endl; }