# https://atcoder.jp/contests/diverta2019-2/tasks/diverta2019_2_b

n = int(input())
ball = []
s = set()
for _ in range(n):
    x, y = map(int, input().split())
    ball.append((x, y))
    s.add((x, y))

ans = n
for i in range(n):
    x, y = ball[i]
    for j in range(n):
        dx, dy = x - ball[j][0], y - ball[j][1]
        if dx == 0 and dy == 0:
            continue
        point = 0
        for k in range(n):
            a, b = ball[k][0] - dx, ball[k][1] - dy
            if (a, b) in s:
                point += 1
        ans = min(ans, n - point)
print(ans) n = int(input()) n int(input()) int input() input ball = [] ball [] s = set() s set() set for _ in range(n):
    x, y = map(int, input().split())
    ball.append((x, y))
    s.add((x, y)) _ range(n) range n x, y = map(int, input().split()) x map(int, input().split()) map int input().split() ().split () input split y ball.append((x, y)) ball.append ball append (x, y) x y s.add((x, y)) s.add s add (x, y) x y ans = n ans n for i in range(n):
    x, y = ball[i]
    for j in range(n):
        dx, dy = x - ball[j][0], y - ball[j][1]
        if dx == 0 and dy == 0:
            continue
        point = 0
        for k in range(n):
            a, b = ball[k][0] - dx, ball[k][1] - dy
            if (a, b) in s:
                point += 1
        ans = min(ans, n - point) i range(n) range n x, y = ball[i] x ball[i] ball i y for j in range(n):
        dx, dy = x - ball[j][0], y - ball[j][1]
        if dx == 0 and dy == 0:
            continue
        point = 0
        for k in range(n):
            a, b = ball[k][0] - dx, ball[k][1] - dy
            if (a, b) in s:
                point += 1
        ans = min(ans, n - point) j range(n) range n dx, dy = x - ball[j][0], y - ball[j][1] dx x - ball[j][0] x ball[j][0] [j] ball j 0 dy y - ball[j][1] y ball[j][1] [j] ball j 1 if dx == 0 and dy == 0:
            continue
         dx == 0 and dy == 0 dx == 0 dx 0 dy == 0 dy 0 continue point = 0 point 0 for k in range(n):
            a, b = ball[k][0] - dx, ball[k][1] - dy
            if (a, b) in s:
                point += 1
         k range(n) range n a, b = ball[k][0] - dx, ball[k][1] - dy a ball[k][0] - dx ball[k][0] [k] ball k 0 dx b ball[k][1] - dy ball[k][1] [k] ball k 1 dy if (a, b) in s:
                point += 1
         (a, b) in s (a, b) a b s point += 1 point 1 ans = min(ans, n - point) ans min(ans, n - point) min ans n - point n point print(ans) print ans b = ball[k][0] - dx, ball[k][1] - dy ball[k][1] - dy b s = set() set() s point += 1 1 point n = int(input()) int(input()) n dy = x - ball[j][0], y - ball[j][1] y - ball[j][1] dy a, b = ball[k][0] - dx, ball[k][1] - dy ball[k][0] - dx a x, y = ball[i] ball[i] x x, y = map(int, input().split()) map(int, input().split()) x y = ball[i] ball[i] y ball = [] [] ball ans = min(ans, n - point) min(ans, n - point) ans y = map(int, input().split()) map(int, input().split()) y dx, dy = x - ball[j][0], y - ball[j][1] x - ball[j][0] dx point = 0 0 point ans = n n ans
# https://atcoder.jp/contests/diverta2019-2/tasks/diverta2019_2_b

n = int(input())
ball = []
s = set()
for _ in range(n):
    x, y = map(int, input().split())
    ball.append((x, y))
    s.add((x, y))

ans = n
for i in range(n):
    x, y = ball[i]
    for j in range(n):
        dx, dy = x - ball[j][0], y - ball[j][1]
        if dx == 0 and dy == 0:
            continue
        point = 0
        for k in range(n):
            a, b = ball[k][0] - dx, ball[k][1] - dy
            if (a, b) in s:
                point += 1
        ans = min(ans, n - point)
print(ans)