#include<bits/stdc++.h>
#define z 1003
#define r register
using namespace std;
struct qssr{
int x,y;
}q[400100],e[400100];
inline qssr in(int x,int y){
qssr t;t.x=x,t.y=y;return t;
}
inline void read(int &x){
int f=1;x=0;char s=getchar();
while(s<'0'||s>'9'){if(s=='-')f=-1;s=getchar();}
while(s>='0'&&s<='9'){x=x<<3+x<<1+s-'0';s=getchar();}
x*=f;
}
std::vector<qssr> f[z][z];
inline double l(const qssr a,const qssr b){return sqrt(pow(a.x-b.x,2)+pow(a.y-b.y,2));}
int n,nx,ny,hl,dx,dy;
qssr tmp;
double di,d;
signed main(){
//srand(time(0));
scanf("%d",&n);
for(r int i=1;i<=n;++i){
scanf("%d%d",&q[i].x,&q[i].y);
q[i].x+=10000000;
q[i].y+=10000000;
}
//random_shuffle(q+1,q+n+1);
di=l(q[1],q[2]);
f[int(q[1].x/di)%z][int(q[1].y/di)%z].push_back(in(q[1].x,q[1].y));
f[int(q[2].x/di)%z][int(q[2].y/di)%z].push_back(in(q[2].x,q[2].y));
e[1]=in(int(q[1].x/di)%z,int(q[1].y/di)%z);
e[2]=in(int(q[2].x/di)%z,int(q[2].y/di)%z);
//cout<<di<<' ';
for(r int i=3;i<=n;++i){
d=di;
nx=int(q[i].x/di)%z,ny=int(q[i].y/di)%z;
tmp=in(q[i].x,q[i].y);
for(r int _x=-1;_x<2;++_x){
for(r int _y=-1;_y<2;++_y){
dx=(nx+_x)%z;dy=(ny+_y)%z;
hl=f[dx][dy].size();
for(r int it=0;it<hl;++it){
d=min(d,l(tmp,f[dx][dy][it]));
}
}
}
if(d<di){
di=d;
/*while(cnt){
f[e[cnt].x][e[cnt].y].clear();
--cnt;
}*/
for(r int j=1;j<i;++j){
f[e[j].x][e[j].y].erase(f[e[j].x][e[j].y].begin());
nx=int(q[j].x/di)%z,ny=int(q[j].y/di)%z;
f[nx][ny].push_back(in(q[j].x,q[j].y));
e[j]=in(nx,ny);
}
}
nx=int(q[i].x/di)%z,ny=int(q[i].y/di)%z;
f[nx][ny].push_back(in(q[i].x,q[i].y));
e[i]=in(nx,ny);
//cout<<di<<' ';
//if((double)clock()/CLOCKS_PER_SEC>0.330) break;
}
printf("%.0lf",di*di);
return 0;
}