#include <fstream>
using namespace std;
ifstream f("tribute.in");
ofstream g("tribute.out");
int N;
struct Point{
int x;
int y;
} Array[50005];
int DX,DY;
int NbX[50005],NbY[50005];
void Read()
{
int i;
f>>N>>DX>>DY;
for(i=1;i<=N;i++)
{
f>>Array[i].x>>Array[i].y;
NbX[Array[i].x]++;
NbY[Array[i].y]++;
}
}
int Solve(int X[],int D)
{
int i,S,current=0;
for(i=D;i<50001;i++)
current+=(i-D)*X[i];
S=current;
for(i=1;i<50001;i++)
X[i]+=X[i-1];
for(i=1;i+D<50001;i++)
{
current+=X[i-1];
current-=(N-X[i+D-1]);
S=min(S,current);
}
return S;
}
void Browse()
{
g<<Solve(NbX,DX)+Solve(NbY,DY)<<"\n";
}
int main()
{
Read();
Browse();
return 0;
}