def scalar(a, b):
    return a[0] * b[0] + a[1] * b[1]

def get_sq(a, b):
    return int((a[0]**2 + a[1]**2) ** 0.5 * (b[0]**2 + b[1]**2) ** 0.5)

def get_vec(a, b):
    return [a[0] - b[0], a[1] - b[1]]

def find_point(x, u, v):
    return [x[0] + u[0] + v[0], x[1] + u[1] + v[1]]

def main():
    n = int(input())
    points = []
    sq = -1
    for i in range(n):
        point = list(map(int, input().split()))
        points.append(point)
    for i in range(n):
        for j in range(i + 1, n):
            for k in range(j + 1, n):
                a = get_vec(points[j], points[i])
                b = get_vec(points[k], points[i])
                # print(a,b)
                if scalar(a, b) == 0 and find_point(points[i], a, b) in points:
                    if sq == -1:
                        sq = get_sq(a, b)
                    # print(get_sq(a,b))
                    sq = min(sq, get_sq(a, b))
                    if sq == 1:
                        print(1)
                        return
    print(sq)
    

main()
