#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
#include <set>
#include <stack>
#include <queue>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <cstdlib>

using namespace std;
typedef long long LL;
static const double EPS = 1e-9;

#define FOR(i,k,n) for (int i=(k); i<(int)(n); ++i)
#define REP(i,n) FOR(i,0,n)
bool used[21];
int n,hx,hy,dx,dy;
vector<int> cx(21),cy(21);
vector<double> dist(21);
double pointdistance(int x1, int y1, int x2, int y2){
  return sqrt( (x1-x2)*(x1-x2) +(y1-y2)*(y1-y2) );
}
int dfs(int x, int y, int t,double s){
  if(t==n) return true;
  double nexts;
  REP(i,n){
    if(!used[i]){
      nexts = s + pointdistance(x,y,cx[i],cy[i]);
      if(nexts > dist[i] - EPS) return false; 
    }
  }
  REP(i,n){
    if(!used[i]){
      nexts = s + pointdistance(x,y,cx[i],cy[i]);
      used[i] = true;
      if(dfs(cx[i],cy[i],t+1,nexts)) return true;
      used[i] = false;
    }
  }
  return false;
}

int main(void){
  while(cin>>n>>hx>>hy>>dx>>dy,n){
    REP(i,n)cin>>cx[i]>>cy[i];
    REP(i,n)dist[i] = sqrt((cx[i]-dx)*(cx[i]-dx) +(cy[i]-dy)*(cy[i]-dy) );
    memset(used,0,sizeof(used));
    if(dfs(hx,hy,0,0.0)) cout<<"YES"<<endl;
    else cout<<"NO"<<endl;
  }
  return 0;
}