import copy

N = int(input())
XY = [tuple(map(int, input().split())) for _ in range(N)]
ans = 10**10
for i in range(N-1):
  x_begin, y_begin = XY[i]
  for j in range(i+1, N):
    p = XY[j][0]-XY[i][0]
    q = XY[j][1]-XY[i][1]
    c = 0
    for k in range(N-1):
      for l in range(k+1, N):
        dx = XY[k][0]-XY[l][0]
        dy = XY[k][1]-XY[l][1]
        if dx == p and dy == q or dx == -p and dy == -q:
          c += 1
    ans = min(ans, N-c)
print(ans if N > 2 else 1) import copy copy N = int(input()) N int(input()) int input() input tuple(map(int, input().split())) for _ in range(N) for _ in range(N) _ range(N) range N for _ in range(N) tuple(map(int, input().split())) tuple map(int, input().split()) map int input().split() ().split () input split XY = [tuple(map(int, input().split())) for _ in range(N)] XY [tuple(map(int, input().split())) for _ in range(N)] ans = 10**10 ans 10**10 10 10 for i in range(N-1):
  x_begin, y_begin = XY[i]
  for j in range(i+1, N):
    p = XY[j][0]-XY[i][0]
    q = XY[j][1]-XY[i][1]
    c = 0
    for k in range(N-1):
      for l in range(k+1, N):
        dx = XY[k][0]-XY[l][0]
        dy = XY[k][1]-XY[l][1]
        if dx == p and dy == q or dx == -p and dy == -q:
          c += 1
    ans = min(ans, N-c) i range(N-1) range N-1 N 1 x_begin, y_begin = XY[i] x_begin XY[i] XY i y_begin for j in range(i+1, N):
    p = XY[j][0]-XY[i][0]
    q = XY[j][1]-XY[i][1]
    c = 0
    for k in range(N-1):
      for l in range(k+1, N):
        dx = XY[k][0]-XY[l][0]
        dy = XY[k][1]-XY[l][1]
        if dx == p and dy == q or dx == -p and dy == -q:
          c += 1
    ans = min(ans, N-c) j range(i+1, N) range i+1 i 1 N p = XY[j][0]-XY[i][0] p XY[j][0]-XY[i][0] XY[j][0] [j] XY j 0 XY[i][0] [i] XY i 0 q = XY[j][1]-XY[i][1] q XY[j][1]-XY[i][1] XY[j][1] [j] XY j 1 XY[i][1] [i] XY i 1 c = 0 c 0 for k in range(N-1):
      for l in range(k+1, N):
        dx = XY[k][0]-XY[l][0]
        dy = XY[k][1]-XY[l][1]
        if dx == p and dy == q or dx == -p and dy == -q:
          c += 1
     k range(N-1) range N-1 N 1 for l in range(k+1, N):
        dx = XY[k][0]-XY[l][0]
        dy = XY[k][1]-XY[l][1]
        if dx == p and dy == q or dx == -p and dy == -q:
          c += 1
     l range(k+1, N) range k+1 k 1 N dx = XY[k][0]-XY[l][0] dx XY[k][0]-XY[l][0] XY[k][0] [k] XY k 0 XY[l][0] [l] XY l 0 dy = XY[k][1]-XY[l][1] dy XY[k][1]-XY[l][1] XY[k][1] [k] XY k 1 XY[l][1] [l] XY l 1 if dx == p and dy == q or dx == -p and dy == -q:
          c += 1
     dx == p and dy == q or dx == -p and dy == -q dx == p and dy == q dx == p dx p dy == q dy q dx == -p and dy == -q dx == -p dx -p p dy == -q dy -q q c += 1 c 1 ans = min(ans, N-c) ans min(ans, N-c) min ans N-c N c print(ans if N > 2 else 1) print ans if N > 2 else 1 N > 2 N 2 ans 1 c = 0 0 c dy = XY[k][1]-XY[l][1] XY[k][1]-XY[l][1] dy XY = [tuple(map(int, input().split())) for _ in range(N)] [tuple(map(int, input().split())) for _ in range(N)] XY ans = 10**10 10**10 ans q = XY[j][1]-XY[i][1] XY[j][1]-XY[i][1] q y_begin = XY[i] XY[i] y_begin c += 1 1 c x_begin, y_begin = XY[i] XY[i] x_begin dx = XY[k][0]-XY[l][0] XY[k][0]-XY[l][0] dx p = XY[j][0]-XY[i][0] XY[j][0]-XY[i][0] p ans = min(ans, N-c) min(ans, N-c) ans N = int(input()) int(input()) N
import copy

N = int(input())
XY = [tuple(map(int, input().split())) for _ in range(N)]
ans = 10**10
for i in range(N-1):
  x_begin, y_begin = XY[i]
  for j in range(i+1, N):
    p = XY[j][0]-XY[i][0]
    q = XY[j][1]-XY[i][1]
    c = 0
    for k in range(N-1):
      for l in range(k+1, N):
        dx = XY[k][0]-XY[l][0]
        dy = XY[k][1]-XY[l][1]
        if dx == p and dy == q or dx == -p and dy == -q:
          c += 1
    ans = min(ans, N-c)
print(ans if N > 2 else 1)