#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#define maxn 100001
#define R read()
using namespace std;
int read(){
int x=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-') f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
x=(x<<3)+(x<<1)+(ch^48);
ch=getchar();
}
return x*f;
}
struct das{
int dist_a;
int dist_b;
}d[maxn*2+1];
inline bool cmp(das a,das b){
return a.dist_a<b.dist_a;
}
int x1,x2,x3,x4,n;
int main(){
x1=R; x2=R; x3=R; x4=R; n=R;
for(register int i=1;i<=n;i++){
int x=R,y=R;
d[i].dist_a=pow((x-x1),2)+pow((x2-y),2);
d[i].dist_b=pow((x-x3),2)+pow((y-x4),2);
}
sort(d+1,d+1+n,cmp); int ans=d[n].dist_a;
int maxx=d[n].dist_b;
for(register int i=n-1;i>=1;i--){
if(maxx>d[i].dist_b) d[i].dist_b=maxx;
else maxx=d[i].dist_b;
}
for(register int i=n-1;i>=1;i--){
if(ans>(d[i].dist_a+d[i].dist_b)) ans=d[i].dist_a+d[i].dist_b;
}
cout<<ans;
return 0;
}