/*
TASK:dist
LANG:C++
*/
#include<iostream>
#include<cmath>
using namespace std;
int n;
// Graham scan + Dist to Segment
// if n < 800 Brute Force => za sega mislq 4e e po-sigurno :P
/// ;)
struct point
{
       int x;
       int y;
       int next;
}pin[6000],tmp,p0;

int dist(point A,point B)
{
    return sqrt((double)(A.x - B.x)*(A.x - B.x) + (A.y - B.y)*(A.y - B.y));
}
int p,c1,c2;
long mik = 1000000000,k;

int main()
{
    int i;
    int minn = 1;
    scanf("%d",&n);
    scanf("%d %d",&pin[0].x,&pin[0].y);
    for(i = 1;i <= n;i++)
    {
          scanf("%d %d",&pin[i].x,&pin[i].y);
          if(dist(pin[0],pin[i]) < mik)
          {
                     mik = dist(pin[0],pin[i]);
          }
    }
    printf("%d\n",mik);
    return 0;
}

