n = int(input())
grid = []
if n == 1:
    print(1)
    exit()
for _ in range(n):
    x,y = map(int,input().split())
    grid.append((x,y))
S = set(grid)
ans = float("inf")
for i in range(n-1):
    for j in range(i+1,n):
        cnt = 0
        p = grid[i][0]-grid[j][0]
        q = grid[i][1]-grid[j][1]
        for k in range(n):
            if (grid[k][0]-p,grid[k][1]-q) in S:
                cnt += 1
        else:
            ans = min(n-cnt,ans)
print(ans) n = int(input()) n int(input()) int input() input grid = [] grid [] if n == 1:
    print(1)
    exit() n == 1 n 1 print(1) print 1 exit() exit for _ in range(n):
    x,y = map(int,input().split())
    grid.append((x,y)) _ range(n) range n x,y = map(int,input().split()) x map(int,input().split()) map int input().split() ().split () input split y grid.append((x,y)) grid.append grid append (x,y) x y S = set(grid) S set(grid) set grid ans = float("inf") ans float("inf") float "inf" for i in range(n-1):
    for j in range(i+1,n):
        cnt = 0
        p = grid[i][0]-grid[j][0]
        q = grid[i][1]-grid[j][1]
        for k in range(n):
            if (grid[k][0]-p,grid[k][1]-q) in S:
                cnt += 1
        else:
            ans = min(n-cnt,ans) i range(n-1) range n-1 n 1 for j in range(i+1,n):
        cnt = 0
        p = grid[i][0]-grid[j][0]
        q = grid[i][1]-grid[j][1]
        for k in range(n):
            if (grid[k][0]-p,grid[k][1]-q) in S:
                cnt += 1
        else:
            ans = min(n-cnt,ans) j range(i+1,n) range i+1 i 1 n cnt = 0 cnt 0 p = grid[i][0]-grid[j][0] p grid[i][0]-grid[j][0] grid[i][0] [i] grid i 0 grid[j][0] [j] grid j 0 q = grid[i][1]-grid[j][1] q grid[i][1]-grid[j][1] grid[i][1] [i] grid i 1 grid[j][1] [j] grid j 1 for k in range(n):
            if (grid[k][0]-p,grid[k][1]-q) in S:
                cnt += 1
        else:
            ans = min(n-cnt,ans) k range(n) range n if (grid[k][0]-p,grid[k][1]-q) in S:
                cnt += 1
         (grid[k][0]-p,grid[k][1]-q) in S (grid[k][0]-p,grid[k][1]-q) grid[k][0]-p grid[k][0] [k] grid k 0 p grid[k][1]-q grid[k][1] [k] grid k 1 q S cnt += 1 cnt 1 ans = min(n-cnt,ans) ans min(n-cnt,ans) min n-cnt n cnt ans print(ans) print ans grid = [] [] grid S = set(grid) set(grid) S x,y = map(int,input().split()) map(int,input().split()) x y = map(int,input().split()) map(int,input().split()) y p = grid[i][0]-grid[j][0] grid[i][0]-grid[j][0] p n = int(input()) int(input()) n ans = float("inf") float("inf") ans q = grid[i][1]-grid[j][1] grid[i][1]-grid[j][1] q cnt = 0 0 cnt cnt += 1 1 cnt ans = min(n-cnt,ans) min(n-cnt,ans) ans
n = int(input())
grid = []
if n == 1:
    print(1)
    exit()
for _ in range(n):
    x,y = map(int,input().split())
    grid.append((x,y))
S = set(grid)
ans = float("inf")
for i in range(n-1):
    for j in range(i+1,n):
        cnt = 0
        p = grid[i][0]-grid[j][0]
        q = grid[i][1]-grid[j][1]
        for k in range(n):
            if (grid[k][0]-p,grid[k][1]-q) in S:
                cnt += 1
        else:
            ans = min(n-cnt,ans)
print(ans)