from copy import deepcopy

N = int(input())
points = []
used = [0 for i in range(N)]
for i in range(N):
    inp = list(map(int, input().split()))
    inp.insert(0,i)
    points.append(tuple(inp))

west = deepcopy(points)
north = deepcopy(points) 

west.sort(lambda x: x[1])
north.sort(lambda x: x[2])

#print(west)
#print(north)

wi = 0
ei = N-1
ni = 0
si = N-1

def find_next():
    while used[west[wi][0]] == 1:
        wi += 1
    while used[west[ei][0]] == 1:
        ei -= 1
    while used[north[ni][0]] == 1:
        ni += 1
    while used[north[si][0]] == 1:
        si -= 1

for i in range(N // 4 - 1):
    while used[west[wi][0]] == 1:
        wi += 1
    used[west[wi][0]] = 1
    while used[west[ei][0]] == 1:
        ei -= 1
    used[west[ei][0]] = 1
    while used[north[ni][0]] == 1:
        ni += 1
    used[north[ni][0]] = 1
    while used[north[si][0]] == 1:
        si -= 1
    used[north[si][0]] = 1
    

vertices = []
for i in range(len(used)):
    if used[i] != 1:
        vertices.append(i)

# while used[west[wi][0]] == 1:
#     wi += 1
# vertices.append(west[wi][0])
# while used[west[ei][0]] == 1:
#     ei -= 1
# vertices.append(west[ei][0])
# while used[north[ni][0]] == 1:
#     ni += 1
# vertices.append(north[ni][0])
# while used[north[si][0]] == 1:
#     si -= 1
# vertices.append(north[si][0])

#print(vertices)
dists = []

for a in vertices:
     for b in vertices:
        if a != b:
            dists.append(((points[a][1] - points[b][1]) ** 2 +  (points[a][2] - points[b][2]) ** 2) ** 0.5)
            
dists.sort()
print(int(round(dists[0] * dists[4])))
