#include <cstdio>
#include <algorithm>
#include <vector>
#include <set>
#include <map>
using namespace std;
using ll = long long int;

ll N, D, a, b;
ll x[100010], y[100010];

set< pair<ll, ll> > S;
map< ll, vector<ll> > mpx, mpy;
map< ll, set<ll> > stx, sty;
ll ans = 0;

void solve(ll x, ll y);
void search_pt(map<ll, vector<ll> > &mp, ll x, ll lb, ll ub, int mode);

void search_pt(map<ll, vector<ll> > &mp, map<ll, set<ll> > &st, ll t, ll lb, ll ub, int mode) {
    if(!mp.count(t)) return;
    int lb_idx = lower_bound(mp[t].begin(), mp[t].end(), lb) - mp[t].begin();
    int ub_idx = upper_bound(mp[t].begin(), mp[t].end(), ub) - mp[t].begin();
    ans += ub_idx - lb_idx;
    // printf("target = %lld [%lld, %lld], lb_idx = %d, ub_idx = %d\n", t, lb, ub, lb_idx, ub_idx);

    auto l = st[t].lower_bound(lb), r = st[t].upper_bound(ub);
    vector< pair<ll, ll> > cand;
    for(auto it=l; it!=r; it++) {
        ll X = (mode == 0 ? t : *it);
        ll Y = (mode == 1 ? t : *it);
        S.insert(make_pair(X, Y));
        cand.push_back(make_pair(X, Y));
    }

    for(auto p : cand) {
        ll X = p.first, Y = p.second;
        stx[X].erase(Y);
        sty[Y].erase(X);
    }

    for(auto p : cand) {
        ll X = p.first, Y = p.second;
        solve(X, Y);
    }
}

void solve(ll X, ll Y) {
    search_pt(mpx, stx, X-D, Y-D, Y+D, 0);
    search_pt(mpx, stx, X+D, Y-D, Y+D, 0);
    search_pt(mpy, sty, Y-D, X-D+1, X+D-1, 1);
    search_pt(mpy, sty, Y+D, X-D+1, X+D-1, 1);
}

int main() {
    scanf("%lld%lld%lld", &N, &a, &b);
    a--; b--;
    for(int i=0; i<N; i++) {
        ll p, q; scanf("%lld%lld", &p, &q);
        x[i] = p - q, y[i] = p + q;
        // printf("x = %lld, y = %lld\n", x[i], y[i]);
        mpx[ x[i] ].push_back(y[i]);
        mpy[ y[i] ].push_back(x[i]);
        if(i != a) stx[ x[i] ].insert(y[i]);
        if(i != a) sty[ y[i] ].insert(x[i]);
    }

    D = max(llabs(x[a] - x[b]), llabs(y[a] - y[b]));
    for(auto &vec : mpx) {
        sort(vec.second.begin(), vec.second.end());
    }
    for(auto &vec : mpy) {
        sort(vec.second.begin(), vec.second.end());
    }

    S.insert(make_pair(x[a], y[a]));
    solve(x[a], y[a]);

    printf("%lld\n", ans / 2);
    return 0;
}