N = int(input())

points = [list(map(int, input().split())) for _ in range(N)]
vec_dic = {}

max_same = 0
for i in range(N):
    x1,y1 = points[i]
    for j in range(N):
        if i == j:
            continue
        x2,y2 = points[j]
        d_x = x2 - x1
        d_y = y2 - y1
        if d_x in vec_dic.keys():
            if d_y in vec_dic[d_x].keys():
                vec_dic[d_x][d_y] += 1
                max_same = max(max_same, vec_dic[d_x][d_y])
            else:
                vec_dic[d_x][d_y] = 1
                max_same = max(max_same,1)
        else:
            vec_dic[d_x] = {d_y: 1}
            max_same = max(max_same, 1)
print(N-max_same) 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 points = [list(map(int, input().split())) for _ in range(N)] points [list(map(int, input().split())) for _ in range(N)] vec_dic = {} vec_dic {} max_same = 0 max_same 0 for i in range(N):
    x1,y1 = points[i]
    for j in range(N):
        if i == j:
            continue
        x2,y2 = points[j]
        d_x = x2 - x1
        d_y = y2 - y1
        if d_x in vec_dic.keys():
            if d_y in vec_dic[d_x].keys():
                vec_dic[d_x][d_y] += 1
                max_same = max(max_same, vec_dic[d_x][d_y])
            else:
                vec_dic[d_x][d_y] = 1
                max_same = max(max_same,1)
        else:
            vec_dic[d_x] = {d_y: 1}
            max_same = max(max_same, 1) i range(N) range N x1,y1 = points[i] x1 points[i] points i y1 for j in range(N):
        if i == j:
            continue
        x2,y2 = points[j]
        d_x = x2 - x1
        d_y = y2 - y1
        if d_x in vec_dic.keys():
            if d_y in vec_dic[d_x].keys():
                vec_dic[d_x][d_y] += 1
                max_same = max(max_same, vec_dic[d_x][d_y])
            else:
                vec_dic[d_x][d_y] = 1
                max_same = max(max_same,1)
        else:
            vec_dic[d_x] = {d_y: 1}
            max_same = max(max_same, 1) j range(N) range N if i == j:
            continue
         i == j i j continue x2,y2 = points[j] x2 points[j] points j y2 d_x = x2 - x1 d_x x2 - x1 x2 x1 d_y = y2 - y1 d_y y2 - y1 y2 y1 if d_x in vec_dic.keys():
            if d_y in vec_dic[d_x].keys():
                vec_dic[d_x][d_y] += 1
                max_same = max(max_same, vec_dic[d_x][d_y])
            else:
                vec_dic[d_x][d_y] = 1
                max_same = max(max_same,1)
        else:
            vec_dic[d_x] = {d_y: 1}
            max_same = max(max_same, 1) d_x in vec_dic.keys() d_x vec_dic.keys() vec_dic.keys vec_dic keys if d_y in vec_dic[d_x].keys():
                vec_dic[d_x][d_y] += 1
                max_same = max(max_same, vec_dic[d_x][d_y])
            else:
                vec_dic[d_x][d_y] = 1
                max_same = max(max_same,1)
         d_y in vec_dic[d_x].keys() d_y vec_dic[d_x].keys() [d_x].keys [d_x] vec_dic d_x keys vec_dic[d_x][d_y] += 1 vec_dic[d_x][d_y] [d_x] vec_dic d_x d_y 1 max_same = max(max_same, vec_dic[d_x][d_y]) max_same max(max_same, vec_dic[d_x][d_y]) max max_same vec_dic[d_x][d_y] [d_x] vec_dic d_x d_y vec_dic[d_x][d_y] = 1 vec_dic[d_x][d_y] [d_x] vec_dic d_x d_y 1 max_same = max(max_same,1) max_same max(max_same,1) max max_same 1 vec_dic[d_x] = {d_y: 1} vec_dic[d_x] vec_dic d_x {d_y: 1} d_y d_y 1 max_same = max(max_same, 1) max_same max(max_same, 1) max max_same 1 print(N-max_same) print N-max_same N max_same max_same = max(max_same, vec_dic[d_x][d_y]) max(max_same, vec_dic[d_x][d_y]) max_same max_same = 0 0 max_same N = int(input()) int(input()) N vec_dic = {} {} vec_dic x1,y1 = points[i] points[i] x1 x2,y2 = points[j] points[j] x2 max_same = max(max_same, 1) max(max_same, 1) max_same max_same = max(max_same,1) max(max_same,1) max_same points = [list(map(int, input().split())) for _ in range(N)] [list(map(int, input().split())) for _ in range(N)] points d_y = y2 - y1 y2 - y1 d_y y2 = points[j] points[j] y2 d_x = x2 - x1 x2 - x1 d_x y1 = points[i] points[i] y1
N = int(input())

points = [list(map(int, input().split())) for _ in range(N)]
vec_dic = {}

max_same = 0
for i in range(N):
    x1,y1 = points[i]
    for j in range(N):
        if i == j:
            continue
        x2,y2 = points[j]
        d_x = x2 - x1
        d_y = y2 - y1
        if d_x in vec_dic.keys():
            if d_y in vec_dic[d_x].keys():
                vec_dic[d_x][d_y] += 1
                max_same = max(max_same, vec_dic[d_x][d_y])
            else:
                vec_dic[d_x][d_y] = 1
                max_same = max(max_same,1)
        else:
            vec_dic[d_x] = {d_y: 1}
            max_same = max(max_same, 1)
print(N-max_same)