var i,j,k,l,m,n,x1,y1,x2,y2,x0,y0,max,min,maxb,min1,min2:longint;
x,y,a,b:array[0..100001]of longint;
procedure qs(l,r:longint);
var
i,j,x,y: longint;
begin
i:=l;
j:=r;
x:=a[(l+r) div 2];
repeat
while a[i]>x do
inc(i);
while x>a[j] do
dec(j);
if not(i>j) then
begin
y:=a[i];
a[i]:=a[j];
a[j]:=y;
y:=b[i];
b[i]:=b[j];
b[j]:=y;
inc(i);
j:=j-1;
end;
until i>j;
if l<j then
qs(l,j);
if i<r then
qs(i,r);
end;
begin
//assign(input,'missile.in'); reset(input);
//assign(output,'missile.out'); rewrite(output);
fillchar(a,sizeof(a),0);
fillchar(b,sizeof(b),0);
read(x1,y1,x2,y2);
read(n);
for i:=1 to n do
begin
read(x0,y0);
a[i]:=sqr(x0-x1)+sqr(y0-y1);
b[i]:=sqr(x0-x2)+sqr(y0-y2);
end;
qs(1,n);
maxb:=0; min:=a[1];
for i:=2 to n+1 do
begin
if b[i-1]>maxb then maxb:=b[i-1];
if a[i]+maxb<min then min:=a[i]+maxb;
end;
writeln(min);
close(input); close(output);
end.
/**************************************************************
Problem: 2294
User: admin
Language: Pascal
Result: Wrong Answer
****************************************************************/