N,X,Y=map(int,input().split()) Lx=[] Ly=[] Ax=set() Ay=set() for i in range(N): x,y=map(int,input().split()) Lx.append(x) Ly.append(y) Lx.append(x+X) Ly.append(y+Y) Lx.append(x+2*X) Ly.append(y+2*Y) Ax.add(x) Ay.add(y) Ax.add(x+X//2) Ax.add(x+(X+1)//2) Ay.add(y+Y//2) Ay.add(y+(Y+1)//2) result0,result1=0,0 Lx.sort() Ly.sort() from bisect import bisect_right vx=[0]*(3*N+2) vy=[0]*(3*N+2) for i in range(3*N): vx[i+1]=vx[i]+Lx[i] vy[i+1]=vy[i]+Ly[i] for a in Ax: p=a+X pos=bisect_right(Lx,p+X//2) pos2=bisect_right(Lx,p) count=pos-pos2 count2=N-count d=(vx[pos]-vx[pos2])-count*p d+=count2*p-(vx[pos2]-vx[pos-N]) result0=max(result0,d) for a in Ay: p=a+Y pos=bisect_right(Ly,p+X//2) pos2=bisect_right(Ly,p) count=pos-pos2 count2=N-count d=(vy[pos]-vy[pos2])-count*p d+=count2*p-(vy[pos2]-vy[pos-N]) result1=max(result1,d) print(result0+result1)