# -*- coding: utf-8 -*-
n = int(input())
xy = [list(map(int, input().split())) for _ in range(n)]

if n==1:
    print(1)
    exit()

def cost(p,q):
    e = 0
    for i in range(n):
        for j in range(n):
            v = xy[i]
            u = xy[j]
            if p==u[0]-v[0] and q==u[1]-v[1]:
                e += 1
                break
    return n-e

res = 10**9
for i in range(n):
    for j in range(n):
        if i==j:
            continue
        v = xy[i]
        u = xy[j]
        res = min(res, cost(v[0]-u[0], v[1]-u[1]))

print(res) 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)] if n==1:
    print(1)
    exit() n==1 n 1 print(1) print 1 exit() exit def cost(p,q):
    e = 0
    for i in range(n):
        for j in range(n):
            v = xy[i]
            u = xy[j]
            if p==u[0]-v[0] and q==u[1]-v[1]:
                e += 1
                break
    return n-e cost e = 0 e 0 for i in range(n):
        for j in range(n):
            v = xy[i]
            u = xy[j]
            if p==u[0]-v[0] and q==u[1]-v[1]:
                e += 1
                break
     i range(n) range n for j in range(n):
            v = xy[i]
            u = xy[j]
            if p==u[0]-v[0] and q==u[1]-v[1]:
                e += 1
                break
     j range(n) range n v = xy[i] v xy[i] xy i u = xy[j] u xy[j] xy j if p==u[0]-v[0] and q==u[1]-v[1]:
                e += 1
                break
     p==u[0]-v[0] and q==u[1]-v[1] p==u[0]-v[0] p u[0]-v[0] u[0] u 0 v[0] v 0 q==u[1]-v[1] q u[1]-v[1] u[1] u 1 v[1] v 1 e += 1 e 1 break return n-e n-e n e p p q q res = 10**9 res 10**9 10 9 for i in range(n):
    for j in range(n):
        if i==j:
            continue
        v = xy[i]
        u = xy[j]
        res = min(res, cost(v[0]-u[0], v[1]-u[1])) i range(n) range n for j in range(n):
        if i==j:
            continue
        v = xy[i]
        u = xy[j]
        res = min(res, cost(v[0]-u[0], v[1]-u[1])) j range(n) range n if i==j:
            continue
         i==j i j continue v = xy[i] v xy[i] xy i u = xy[j] u xy[j] xy j res = min(res, cost(v[0]-u[0], v[1]-u[1])) res min(res, cost(v[0]-u[0], v[1]-u[1])) min res cost(v[0]-u[0], v[1]-u[1]) cost v[0]-u[0] v[0] v 0 u[0] u 0 v[1]-u[1] v[1] v 1 u[1] u 1 print(res) print res res = 10**9 10**9 res def cost(p,q):
    e = 0
    for i in range(n):
        for j in range(n):
            v = xy[i]
            u = xy[j]
            if p==u[0]-v[0] and q==u[1]-v[1]:
                e += 1
                break
    return n-e def cost(p,q):
    e = 0
    for i in range(n):
        for j in range(n):
            v = xy[i]
            u = xy[j]
            if p==u[0]-v[0] and q==u[1]-v[1]:
                e += 1
                break
    return n-e cost v = xy[i] xy[i] v res = min(res, cost(v[0]-u[0], v[1]-u[1])) min(res, cost(v[0]-u[0], v[1]-u[1])) res xy = [list(map(int, input().split())) for _ in range(n)] [list(map(int, input().split())) for _ in range(n)] xy n = int(input()) int(input()) n u = xy[j] xy[j] u
# -*- coding: utf-8 -*-
n = int(input())
xy = [list(map(int, input().split())) for _ in range(n)]

if n==1:
    print(1)
    exit()

def cost(p,q):
    e = 0
    for i in range(n):
        for j in range(n):
            v = xy[i]
            u = xy[j]
            if p==u[0]-v[0] and q==u[1]-v[1]:
                e += 1
                break
    return n-e

res = 10**9
for i in range(n):
    for j in range(n):
        if i==j:
            continue
        v = xy[i]
        u = xy[j]
        res = min(res, cost(v[0]-u[0], v[1]-u[1]))

print(res)