from collections import defaultdict as dd
from itertools import combinations
from sys import exit
n = int(input())
if n == 1:
    print(1)
    exit()

Points = []
for i in range(n):
    Points.append(list(map(int, input().split())))

Vector = dd(lambda: 0)
for point1, point2 in combinations(Points, 2):
    if point1[0] > point2[0]:
        x_v = point1[0] - point2[0]
        y_v = point1[1] - point2[1]
    elif point1[0] == point2[0] and point1[1] >= point2[1]:
        x_v = point1[0] - point2[0]
        y_v = point1[1] - point2[1]
    else:
        x_v = point2[0] - point1[0]
        y_v = point2[1] - point1[1]
    Vector[(x_v, y_v)] += 1
#print(Vector)

print(max(n - max(Vector.values()), 1))
 from collections import defaultdict as dd from itertools import combinations from sys import exit n = int(input()) n int(input()) int input() input if n == 1:
    print(1)
    exit() n == 1 n 1 print(1) print 1 exit() exit Points = [] Points [] for i in range(n):
    Points.append(list(map(int, input().split()))) i range(n) range n Points.append(list(map(int, input().split()))) Points.append Points append list(map(int, input().split())) list map(int, input().split()) map int input().split() ().split () input split Vector = dd(lambda: 0) Vector dd(lambda: 0) dd lambda: 0 0 for point1, point2 in combinations(Points, 2):
    if point1[0] > point2[0]:
        x_v = point1[0] - point2[0]
        y_v = point1[1] - point2[1]
    elif point1[0] == point2[0] and point1[1] >= point2[1]:
        x_v = point1[0] - point2[0]
        y_v = point1[1] - point2[1]
    else:
        x_v = point2[0] - point1[0]
        y_v = point2[1] - point1[1]
    Vector[(x_v, y_v)] += 1
#print(Vector) point1 point2 combinations(Points, 2) combinations Points 2 if point1[0] > point2[0]:
        x_v = point1[0] - point2[0]
        y_v = point1[1] - point2[1]
    elif point1[0] == point2[0] and point1[1] >= point2[1]:
        x_v = point1[0] - point2[0]
        y_v = point1[1] - point2[1]
    else:
        x_v = point2[0] - point1[0]
        y_v = point2[1] - point1[1]
     point1[0] > point2[0] point1[0] point1 0 point2[0] point2 0 x_v = point1[0] - point2[0] x_v point1[0] - point2[0] point1[0] point1 0 point2[0] point2 0 y_v = point1[1] - point2[1] y_v point1[1] - point2[1] point1[1] point1 1 point2[1] point2 1 elif point1[0] == point2[0] and point1[1] >= point2[1]:
        x_v = point1[0] - point2[0]
        y_v = point1[1] - point2[1]
     point1[0] == point2[0] and point1[1] >= point2[1] point1[0] == point2[0] point1[0] point1 0 point2[0] point2 0 point1[1] >= point2[1] point1[1] point1 1 point2[1] point2 1 x_v = point1[0] - point2[0] x_v point1[0] - point2[0] point1[0] point1 0 point2[0] point2 0 y_v = point1[1] - point2[1] y_v point1[1] - point2[1] point1[1] point1 1 point2[1] point2 1 x_v = point2[0] - point1[0] x_v point2[0] - point1[0] point2[0] point2 0 point1[0] point1 0 y_v = point2[1] - point1[1] y_v point2[1] - point1[1] point2[1] point2 1 point1[1] point1 1 Vector[(x_v, y_v)] += 1 Vector[(x_v, y_v)] Vector (x_v, y_v) x_v y_v 1 print(max(n - max(Vector.values()), 1)) print max(n - max(Vector.values()), 1) max n - max(Vector.values()) n max(Vector.values()) max Vector.values() Vector.values Vector values 1 x_v = point1[0] - point2[0] point1[0] - point2[0] x_v Points = [] [] Points y_v = point1[1] - point2[1] point1[1] - point2[1] y_v x_v = point2[0] - point1[0] point2[0] - point1[0] x_v n = int(input()) int(input()) n Vector = dd(lambda: 0) dd(lambda: 0) Vector x_v = point1[0] - point2[0] point1[0] - point2[0] x_v y_v = point1[1] - point2[1] point1[1] - point2[1] y_v y_v = point2[1] - point1[1] point2[1] - point1[1] y_v
from collections import defaultdict as dd
from itertools import combinations
from sys import exit
n = int(input())
if n == 1:
    print(1)
    exit()

Points = []
for i in range(n):
    Points.append(list(map(int, input().split())))

Vector = dd(lambda: 0)
for point1, point2 in combinations(Points, 2):
    if point1[0] > point2[0]:
        x_v = point1[0] - point2[0]
        y_v = point1[1] - point2[1]
    elif point1[0] == point2[0] and point1[1] >= point2[1]:
        x_v = point1[0] - point2[0]
        y_v = point1[1] - point2[1]
    else:
        x_v = point2[0] - point1[0]
        y_v = point2[1] - point1[1]
    Vector[(x_v, y_v)] += 1
#print(Vector)

print(max(n - max(Vector.values()), 1))

