#include <bits/stdc++.h>
using namespace std;
int dist (int x1,int y1,int x2,int y2) {return (x1-x2)*(x1-x2)+(y1-y2)*(y1-y2);}
struct node{
int x,y;
int s1,s2;
} a[110001];
bool cmp (node x,node y) {return x.s1<y.s1;}
int n,x,y,x1,y1;
int main ()
{
cin>>x>>y;
cin>>(x1)>>(y1)>>n;
for (int i=1;i<=n;i++)
{
cin>>a[i].x>>a[i].y;
a[i].s1=dist (x,y,a[i].x,a[i].y);
a[i].s2=dist (x1,y1,a[i].x,a[i].y);
}
sort (a+1,a+n+1,cmp);
int ans=a[n].s1,hei=-1;
for (int i=n-1;i>=1;i--)
{
hei=max (hei,a[i+1].s2);
ans=min (ans,hei+a[i].s1);
}
cout<<ans<<endl;
return 0;
}