#include <bits/stdc++.h>
using namespace std;
ifstream fin("tribute.in");
ofstream fout("tribute.out");
int n, dx, dy;
vector<pair<int, int>> v(50001);
int min_length(int dx, int dy, int x, int y, int dest_x, int dest_y) {
int val = 1e9;
if (dest_x >= x and dest_x <= x + dx and dest_y >= y and dest_y <= y + dy) {
val = 0;
} else if (dest_x >= x and dest_x <= x + dx) {
val = min(abs(y - dest_y), abs(y + dy - dest_y));
} else if (dest_y >= y and dest_y <= y + dy) {
val = min(abs(x - dest_x), abs(x + dx - dest_x));
} else {
val = min(val, abs(x - dest_x) + abs(y - dest_y));
x += dx;
val = min(val, abs(x - dest_x) + abs(y - dest_y));
y += dy; x -= dx;
val = min(val, abs(x - dest_x) + abs(y - dest_y));
x += dx;
val = min(val, abs(x - dest_x) + abs(y - dest_y));
}
return val;
}
int total_distance(int x, int y) {
int dis = 0;
for (int i = 0; i < n; ++i) {
dis += min_length(dx, dy, x, y, v[i].first, v[i].second);
}
return dis;
}
int main() {
ios::sync_with_stdio(0), cin.tie(0);
int m_a_x, m_a_y, sum_x = 0, sum_y = 0, min_dist = 1e9;
int guess_x[5] = {0, 1, 0, -1, 0}, guess_y[5] = {0, 0, 1, 0, -1};
fin >> n >> dx >> dy;
for (int i = 0; i < n; ++i) {
fin >> v[i].first >> v[i].second;
sum_x += v[i].first;
sum_y += v[i].second;
}
m_a_x = sum_x / n;
m_a_y = sum_y / n;
for (int i = 0; i < 5; ++i) {
m_a_x += guess_x[i];
m_a_y += guess_y[i];
min_dist = min(min_dist, total_distance(m_a_x, m_a_y));
min_dist = min(min_dist, total_distance(m_a_x - 1, m_a_y));
min_dist = min(min_dist, total_distance(m_a_x - 1, m_a_y + 1));
min_dist = min(min_dist, total_distance(m_a_x, m_a_y + 1));
min_dist = min(min_dist, total_distance(m_a_x + 1, m_a_y + 1));
min_dist = min(min_dist, total_distance(m_a_x + 1, m_a_y));
min_dist = min(min_dist, total_distance(m_a_x + 1, m_a_y - 1));
min_dist = min(min_dist, total_distance(m_a_x, m_a_y - 1));
min_dist = min(min_dist, total_distance(m_a_x - 1, m_a_y - 1));
m_a_x -= guess_x[i];
m_a_y -= guess_y[i];
}
fout << min_dist;
return 0;
}