#include <bits/stdc++.h>
using namespace std;

typedef long long ll;

int main()
{
  int n,a,b;
  scanf("%d%d%d",&n,&a,&b);
  a--;
  b--;
  static ll X[100000],Y[100000];
  for(int i=0;i<n;i++){
    ll x,y;
    scanf("%lld%lld",&x,&y);
    X[i]=x+y;
    Y[i]=x-y;
  }
  typedef set<pair<pair<ll,ll>,int> > pset;
  pset S1,S2;
  for(int i=0;i<n;i++){
    if(i==a||i==b){
      continue;
    }
    S1.insert(make_pair(make_pair(X[i],Y[i]),i));
    S2.insert(make_pair(make_pair(Y[i],X[i]),i));
  }
  long long d=max(abs(X[a]-X[b]),abs(Y[a]-Y[b]));
  queue<int> Q;
  Q.push(a);
  Q.push(b);
  static bool B[100000]={0};
  B[a]=B[b]=1;
  while(!Q.empty()){
    int i=Q.front();
    Q.pop();
    for(pset::iterator it=S1.lower_bound(make_pair(make_pair(X[i]-d,Y[i]-d),-1));it!=S1.end()&&it->first<=make_pair(X[i]-d,Y[i]+d);){
      int j=it->second;
      if(!B[j]){
	B[j]=1;
	Q.push(j);
      }
      pset::iterator temp=it;
      it++;
      S1.erase(temp);
    }
    for(pset::iterator it=S1.lower_bound(make_pair(make_pair(X[i]+d,Y[i]-d),-1));it!=S1.end()&&it->first<=make_pair(X[i]+d,Y[i]+d);){
      int j=it->second;
      if(!B[j]){
	B[j]=1;
	Q.push(j);
      }
      pset::iterator temp=it;
      it++;
      S1.erase(temp);
    }
    for(pset::iterator it=S2.lower_bound(make_pair(make_pair(Y[i]+d,X[i]-d),-1));it!=S2.end()&&it->first<=make_pair(Y[i]+d,X[i]+d);){
      int j=it->second;
      if(!B[j]){
	B[j]=1;
	Q.push(j);
      }
      pset::iterator temp=it;
      it++;
      S2.erase(temp);
    }
    for(pset::iterator it=S2.lower_bound(make_pair(make_pair(Y[i]-d,X[i]-d),-1));it!=S2.end()&&it->first<=make_pair(Y[i]-d,X[i]+d);){
      int j=it->second;
      if(!B[j]){
	B[j]=1;
	Q.push(j);
      }
      pset::iterator temp=it;
      it++;
      S2.erase(temp);
    }
  }
  static pair<ll,ll> P1[100000],P2[100000];
  for(int i=0;i<n;i++){
    P1[i]=make_pair(X[i],Y[i]);
    P2[i]=make_pair(Y[i],X[i]);
  }
  sort(P1,P1+n);
  sort(P2,P2+n);
  ll ans=0;
  for(int i=0;i<n;i++){
    if(!B[i]){
      continue;
    }
    ans+=upper_bound(P1,P1+n,make_pair(X[i]-d,Y[i]+d))-lower_bound(P1,P1+n,make_pair(X[i]-d,Y[i]-d));
    ans+=upper_bound(P1,P1+n,make_pair(X[i]+d,Y[i]+d))-lower_bound(P1,P1+n,make_pair(X[i]+d,Y[i]-d));
    ans+=upper_bound(P2,P2+n,make_pair(Y[i]-d,X[i]+d-1))-lower_bound(P2,P2+n,make_pair(Y[i]-d,X[i]-d+1));
    ans+=upper_bound(P2,P2+n,make_pair(Y[i]+d,X[i]+d-1))-lower_bound(P2,P2+n,make_pair(Y[i]+d,X[i]-d+1));
  }
  printf("%lld\n",ans/2);
  return 0;
}
