from itertools import combinations
from collections import Counter

N = int(input())
XY = [list(map(int, input().split())) for _ in range(N)]

cXY = combinations(XY, 2)

edge = []
for a, b in cXY:
  edge.append((a[0]-b[0], a[1]-b[1]))
  edge.append((-a[0]+b[0], -a[1]+b[1]))

ce = Counter(edge)

if N == 1:
  ans = 1
else:
  dup = max(ce.values())
  ans = N - dup
print(ans) from itertools import combinations from collections import Counter 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 XY = [list(map(int, input().split())) for _ in range(N)] XY [list(map(int, input().split())) for _ in range(N)] cXY = combinations(XY, 2) cXY combinations(XY, 2) combinations XY 2 edge = [] edge [] for a, b in cXY:
  edge.append((a[0]-b[0], a[1]-b[1]))
  edge.append((-a[0]+b[0], -a[1]+b[1])) a b cXY edge.append((a[0]-b[0], a[1]-b[1])) edge.append edge append (a[0]-b[0], a[1]-b[1]) a[0]-b[0] a[0] a 0 b[0] b 0 a[1]-b[1] a[1] a 1 b[1] b 1 edge.append((-a[0]+b[0], -a[1]+b[1])) edge.append edge append (-a[0]+b[0], -a[1]+b[1]) -a[0]+b[0] -a[0] a[0] a 0 b[0] b 0 -a[1]+b[1] -a[1] a[1] a 1 b[1] b 1 ce = Counter(edge) ce Counter(edge) Counter edge if N == 1:
  ans = 1
else:
  dup = max(ce.values())
  ans = N - dup N == 1 N 1 ans = 1 ans 1 dup = max(ce.values()) dup max(ce.values()) max ce.values() ce.values ce values ans = N - dup ans N - dup N dup print(ans) print ans ans = N - dup N - dup ans cXY = combinations(XY, 2) combinations(XY, 2) cXY XY = [list(map(int, input().split())) for _ in range(N)] [list(map(int, input().split())) for _ in range(N)] XY dup = max(ce.values()) max(ce.values()) dup edge = [] [] edge N = int(input()) int(input()) N ans = 1 1 ans ce = Counter(edge) Counter(edge) ce
from itertools import combinations
from collections import Counter

N = int(input())
XY = [list(map(int, input().split())) for _ in range(N)]

cXY = combinations(XY, 2)

edge = []
for a, b in cXY:
  edge.append((a[0]-b[0], a[1]-b[1]))
  edge.append((-a[0]+b[0], -a[1]+b[1]))

ce = Counter(edge)

if N == 1:
  ans = 1
else:
  dup = max(ce.values())
  ans = N - dup
print(ans)