#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
struct zuobiao
{long long x;
long long y;
};
bool comparsion(zuobiao a,zuobiao b)
{
return a.x<b.x;
}
bool comparsion2(zuobiao a,zuobiao b)
{
return a.y<b.y;
}
int main()
{
int n,i;
long long k,h,w;
cin>>n;
vector<zuobiao> A(n);
for (i=0;i<n;i++)
cin>>A[i].x>>A[i].y;
sort(A.begin(),A.end(),comparsion);
k=A[n-1].x-A[0].x;
sort(A.begin(),A.end(),comparsion2);
h=A[n-1].y-A[0].y;
// w=k*h;
if(k>=h)
cout<<k*k<<endl;
else cout<<h*h<<endl;
return 0;
}
#include<vector>
#include<algorithm>
using namespace std;
struct zuobiao
{long long x;
long long y;
};
bool comparsion(zuobiao a,zuobiao b)
{
return a.x<b.x;
}
bool comparsion2(zuobiao a,zuobiao b)
{
return a.y<b.y;
}
int main()
{
int n,i;
long long k,h,w;
cin>>n;
vector<zuobiao> A(n);
for (i=0;i<n;i++)
cin>>A[i].x>>A[i].y;
sort(A.begin(),A.end(),comparsion);
k=A[n-1].x-A[0].x;
sort(A.begin(),A.end(),comparsion2);
h=A[n-1].y-A[0].y;
// w=k*h;
if(k>=h)
cout<<k*k<<endl;
else cout<<h*h<<endl;
return 0;
}