using System;
using System.Collections.Generic;

// http://judge.u-aizu.ac.jp/onlinejudge/review.jsp
// http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=2008

public class Test
{
	public static void Main()
	{
		while(true){
		  string[] str1 = Console.ReadLine().Split(' ');
		  int n = int.Parse(str1[0]); 
		  int hx = int.Parse(str1[1]); 
		  int hy = int.Parse(str1[2]); 
		  int dx = int.Parse(str1[3]); 
		  int dy = int.Parse(str1[4]); 

		  if(n == 0) break;
		  
		  int[] acx = new int[n];
		  int[] acy = new int[n];
		  
		  for(int i=0; i<n; i++) {
			string[] str2 = Console.ReadLine().Split(' ');
			acx[i] = int.Parse(str2[0]); 
			acy[i] = int.Parse(str2[1]); 
		}
		
		  //Console.WriteLine("改行あり N = {0} P = {1} Ai = {2}", n, p, a);
		  Console.WriteLine(calc(n,hx,hy,dx,dy,acx,acy));
		
		
		}

	}

  public static string calc(int n,int hx,int hy,int dx,int dy,int[] acx,int[] acy) {
	  SortedList<int, int> dcs = new SortedList<int, int>();
	  for(int i=0;i<n;i++) {
		int idx = ((dx-acx[i])*(dx-acx[i])+(dy-acy[i])*(dy-acy[i]))*20;
		while(dcs.ContainsKey(idx)) idx++;
		dcs[idx] = i;
	  }

	  double[] dcr = new double[n];
	  for(int i=0;i<n;i++) dcr[i] = Math.Sqrt(dcs.Keys[i]/20);
	  double[] hcr = new double[n];
	  for(int i=0;i<n;i++) hcr[i] = Math.Sqrt((hx-acx[dcs.Values[i]])*(hx-acx[dcs.Values[i]])+(hy-acy[dcs.Values[i]])*(hy-acy[dcs.Values[i]]));
	  double[][] ccr = new double[n][];
	  for(int i=0;i<n;i++) ccr[i] = new double[n];
	  for(int j=0;j<n-1;j++) {
		for(int i=j+1;i<n;i++) {
			ccr[j][i] = Math.Sqrt((acx[dcs.Values[j]]-acx[dcs.Values[i]])*(acx[dcs.Values[j]]-acx[dcs.Values[i]])+(acy[dcs.Values[j]]-acy[dcs.Values[i]])*(acy[dcs.Values[j]]-acy[dcs.Values[i]]));
			ccr[i][j] = ccr[j][i];
		}
	  }
	  
	  //Console.WriteLine("A = {0} B = {1} C = {2}", String.Join("", aa), String.Join("", bb), String.Join("", cc));
/*
	  List<byte[][]> met = new List<byte[][]>();
	  met.Add(new byte[][]{aa.ToArray(),bb.ToArray(),cc.ToArray()});
	  
	  int t = calc_sub_dbg(0, m, aa, bb, cc, met);

	  foreach(byte[][] d in met) {
	    Console.WriteLine("==========");
	    foreach(byte[] e in d) Console.WriteLine(String.Join(" ", e));
	  }
	  Console.WriteLine("==========");
*/

	  List<int[]> ret = calc_sub(dcr,hcr,ccr,new List<int>(),0);

	  return ((ret.Count==0) ? "NO" : "YES");
  }
  
  
  public static List<int[]> calc_sub(double[] dcr,double[] hcr,double[][] ccr, List<int> order, double time) {
	List<int[]> ret = new List<int[]>();
	
	if(order.Count==0){
	  	for(int i=0; i<dcr.Length; i++) if(dcr[i]<=hcr[i]) return ret;

	  	for(int i=0; i<dcr.Length; i++){
			double t = hcr[i];
			if(t<dcr[i]) {
				List<int> a = new List<int>();
				a.Add(i);
				ret.AddRange(calc_sub(dcr,hcr,ccr,a, t));
				if(0<ret.Count) break;
			}
		}
	} else if (order.Count==dcr.Length){
		ret.Add(order.ToArray());
	} else {
		double[] lidx = ccr[order[order.Count-1]];
		
	  	for(int i=0; i<dcr.Length; i++){
			if(order.Contains(i)) continue;
			if(dcr[i]<=(time+lidx[i])) return ret;
		}
		
	  	for(int i=0; i<dcr.Length; i++){
			if(order.Contains(i)) continue;
			
			double t = time+lidx[i];
			
//			if(Math.Abs(dcr[i]-t)<0.001) Console.WriteLine("==========");
			
			if(t<dcr[i]) {
				List<int> a = new List<int>(order);
				a.Add(i);
				ret.AddRange(calc_sub(dcr,hcr,ccr,a, t));
				if(0<ret.Count) break;
			}
		}
	}
  
  	return ret;
  }

}



Measured memory_bytes: 10884