(n,), *z = [[*map(int, o.split())] for o in open(0)]
if n == 1:
    print(1)
    exit()
from itertools import*
from collections import*
print(n - Counter((z[i][0] - z[j][0], z[i][1] - z[j][1]) for i, j in permutations(range(n), 2)).most_common()[0][1]) [*map(int, o.split())] for o in open(0) for o in open(0) o open(0) open 0 for o in open(0) [*map(int, o.split())] *map(int, o.split()) map(int, o.split()) map int o.split() o.split o split (n,), *z = [[*map(int, o.split())] for o in open(0)] n [[*map(int, o.split())] for o in open(0)] *z z if n == 1:
    print(1)
    exit() n == 1 n 1 print(1) print 1 exit() exit from itertools import* from collections import* print(n - Counter((z[i][0] - z[j][0], z[i][1] - z[j][1]) for i, j in permutations(range(n), 2)).most_common()[0][1]) print n - Counter((z[i][0] - z[j][0], z[i][1] - z[j][1]) for i, j in permutations(range(n), 2)).most_common()[0][1] n Counter((z[i][0] - z[j][0], z[i][1] - z[j][1]) for i, j in permutations(range(n), 2)).most_common()[0][1] [0] ((z[i][0] - z[j][0], z[i][1] - z[j][1]) for i, j in permutations(range(n), 2)).most_common() ((z[i][0] - z[j][0], z[i][1] - z[j][1]) for i, j in permutations(range(n), 2)).most_common ((z[i][0] - z[j][0], z[i][1] - z[j][1]) for i, j in permutations(range(n), 2)) Counter (z[i][0] - z[j][0], z[i][1] - z[j][1]) z[i][0] - z[j][0] z[i][0] [i] z i 0 z[j][0] [j] z j 0 z[i][1] - z[j][1] z[i][1] [i] z i 1 z[j][1] [j] z j 1 most_common 0 1 n,), *z = [[*map(int, o.split())] for o in open(0)] [[*map(int, o.split())] for o in open(0)] n
(n,), *z = [[*map(int, o.split())] for o in open(0)]
if n == 1:
    print(1)
    exit()
from itertools import*
from collections import*
print(n - Counter((z[i][0] - z[j][0], z[i][1] - z[j][1]) for i, j in permutations(range(n), 2)).most_common()[0][1])