#include <stdio.h>
#include <math.h>

#define MAX 20
#define INF 1E15

double DP[1 << MAX][MAX];
long points[MAX][2];
double adj[MAX][MAX];

int main(int argc, char* argv[]){
  
 Loop:
  for(;;){
    int n, i, j, k, S;
    long h_x, h_y, g_x, g_y;
    
    scanf("%d", &n);
    if(n == 0){
      break;
    }
    
    scanf("%ld %ld %ld %ld", &h_x, &h_y, &g_x, &g_y);

    for(i = 0; i < n; i++){
      scanf("%ld %ld", &points[i][0], &points[i][1]);
    }
    
    for(i = 0; i < n; i++){
      for(j = i + 1; j < n; j++){
	adj[i][j] = adj[j][i] = sqrt(
	  (points[i][0] - points[j][0]) * (points[i][0] - points[j][0]) +
	  (points[i][1] - points[j][1]) * (points[i][1] - points[j][1]));
      }
    }

    for(S = 0; S < 1 << n; S++){
      for(i = 0; i < n; i++){
	DP[S][i] = INF;
      }
    }

    for(i = 0; i < n; i++){
      DP[1 << i][i] = sqrt(
	  (points[i][0] - h_x) * (points[i][0] - h_x) +
	  (points[i][1] - h_y) * (points[i][1] - h_y));
    }
    
    for(S = 0; S < 1 << n; S++){
      for(i = 0; i < n; i++){
	if((S & (1 << i)) == 0){
	  continue;
	}else if(DP[S][i] == INF){
	  continue;
	}

	for(j = 0; j < n; j++){
	  if((S & (1 << j)) != 0){
	    continue;
	  }
	  
	  {
	    double cost = DP[S][i] + adj[i][j];
	    double time = sqrt(
	      (points[j][0] - g_x) * (points[j][0] - g_x) +
	      (points[j][1] - g_y) * (points[j][1] - g_y));

	    if(time > cost && DP[S | (1 << j)][i] > cost){
	      DP[S | (1 << j)][i] = cost;
	    }
	  }
	}
      }
    }
    
    for(i = 0; i < n; i++){
      if(DP[(1 << n) - 1][i] != INF){
	printf("YES\n");
	goto Loop;
      }
    }

    printf("NO\n");
  }
  
  return 0;
}
	 