n = int(input())

points = [list(map(int, input().split(" "))) for _ in range(n)]
X = 0
Y = 1
ans = 10 ** 14
if n == 1:
    ans = 1
else:
    for i in range(n):
        for j in range(n):
            if i == j:
                continue
            x1, y1 = points[i]
            x2, y2 = points[j]
            p = x1 - x2
            q = y1 - y2
            cost = n
            for point1 in points:  # そのpointからcost0で遷移できる先があるかどうか
                fromx, fromy = point1
                for point2 in points:
                    tox, toy = point2
                    if fromx - tox == p and fromy - toy == q:
                        cost -= 1
                        break
            if ans > cost:
                ans = cost
print(ans)


 n = int(input()) n int(input()) int input() input list(map(int, input().split(" "))) for _ in range(n) for _ in range(n) _ range(n) range n for _ in range(n) list(map(int, input().split(" "))) list map(int, input().split(" ")) map int input().split(" ") ().split () input split " " points = [list(map(int, input().split(" "))) for _ in range(n)] points [list(map(int, input().split(" "))) for _ in range(n)] X = 0 X 0 Y = 1 Y 1 ans = 10 ** 14 ans 10 ** 14 10 14 if n == 1:
    ans = 1
else:
    for i in range(n):
        for j in range(n):
            if i == j:
                continue
            x1, y1 = points[i]
            x2, y2 = points[j]
            p = x1 - x2
            q = y1 - y2
            cost = n
            for point1 in points:  # そのpointからcost0で遷移できる先があるかどうか
                fromx, fromy = point1
                for point2 in points:
                    tox, toy = point2
                    if fromx - tox == p and fromy - toy == q:
                        cost -= 1
                        break
            if ans > cost:
                ans = cost n == 1 n 1 ans = 1 ans 1 for i in range(n):
        for j in range(n):
            if i == j:
                continue
            x1, y1 = points[i]
            x2, y2 = points[j]
            p = x1 - x2
            q = y1 - y2
            cost = n
            for point1 in points:  # そのpointからcost0で遷移できる先があるかどうか
                fromx, fromy = point1
                for point2 in points:
                    tox, toy = point2
                    if fromx - tox == p and fromy - toy == q:
                        cost -= 1
                        break
            if ans > cost:
                ans = cost i range(n) range n for j in range(n):
            if i == j:
                continue
            x1, y1 = points[i]
            x2, y2 = points[j]
            p = x1 - x2
            q = y1 - y2
            cost = n
            for point1 in points:  # そのpointからcost0で遷移できる先があるかどうか
                fromx, fromy = point1
                for point2 in points:
                    tox, toy = point2
                    if fromx - tox == p and fromy - toy == q:
                        cost -= 1
                        break
            if ans > cost:
                ans = cost j range(n) range n if i == j:
                continue
             i == j i j continue x1, y1 = points[i] x1 points[i] points i y1 x2, y2 = points[j] x2 points[j] points j y2 p = x1 - x2 p x1 - x2 x1 x2 q = y1 - y2 q y1 - y2 y1 y2 cost = n cost n for point1 in points:  # そのpointからcost0で遷移できる先があるかどうか
                fromx, fromy = point1
                for point2 in points:
                    tox, toy = point2
                    if fromx - tox == p and fromy - toy == q:
                        cost -= 1
                        break
             point1 points fromx, fromy = point1 fromx point1 fromy for point2 in points:
                    tox, toy = point2
                    if fromx - tox == p and fromy - toy == q:
                        cost -= 1
                        break
             point2 points tox, toy = point2 tox point2 toy if fromx - tox == p and fromy - toy == q:
                        cost -= 1
                        break
             fromx - tox == p and fromy - toy == q fromx - tox == p fromx - tox fromx tox p fromy - toy == q fromy - toy fromy toy q cost -= 1 cost 1 break if ans > cost:
                ans = cost ans > cost ans cost ans = cost ans cost print(ans) print ans ans = 1 1 ans x1, y1 = points[i] points[i] x1 toy = point2 point2 toy cost -= 1 1 cost n = int(input()) int(input()) n fromx, fromy = point1 point1 fromx points = [list(map(int, input().split(" "))) for _ in range(n)] [list(map(int, input().split(" "))) for _ in range(n)] points y1 = points[i] points[i] y1 tox, toy = point2 point2 tox x2, y2 = points[j] points[j] x2 y2 = points[j] points[j] y2 q = y1 - y2 y1 - y2 q ans = cost cost ans Y = 1 1 Y cost = n n cost fromy = point1 point1 fromy X = 0 0 X ans = 10 ** 14 10 ** 14 ans p = x1 - x2 x1 - x2 p
n = int(input())

points = [list(map(int, input().split(" "))) for _ in range(n)]
X = 0
Y = 1
ans = 10 ** 14
if n == 1:
    ans = 1
else:
    for i in range(n):
        for j in range(n):
            if i == j:
                continue
            x1, y1 = points[i]
            x2, y2 = points[j]
            p = x1 - x2
            q = y1 - y2
            cost = n
            for point1 in points:  # そのpointからcost0で遷移できる先があるかどうか
                fromx, fromy = point1
                for point2 in points:
                    tox, toy = point2
                    if fromx - tox == p and fromy - toy == q:
                        cost -= 1
                        break
            if ans > cost:
                ans = cost
print(ans)



