from collections import Counter

if __name__ == "__main__":
    n = int(input())
    pos = list()
    for i in range(n):
        pos.append(list(map(int, input().split())))

    # まず1個のボールを最初選びそこから次のボールを選んだときの距離をp,qとして
    # それぞれの組み合わせの最汎値を求める
    dist = list()
    for i in range(n):
        for j in range(n):
            if i != j:
                tmp = (pos[j][0] - pos[i][0], pos[j][1]-pos[i][1])
                dist.append(tmp)

    # most_comon(n)とすると、最も出現回数が多い順からn要素を抽出する
    pq = Counter(dist).most_common(1)

    print(n - pq[0][1] if n != 1 else 1) from collections import Counter if __name__ == "__main__":
    n = int(input())
    pos = list()
    for i in range(n):
        pos.append(list(map(int, input().split())))

    # まず1個のボールを最初選びそこから次のボールを選んだときの距離をp,qとして
    # それぞれの組み合わせの最汎値を求める
    dist = list()
    for i in range(n):
        for j in range(n):
            if i != j:
                tmp = (pos[j][0] - pos[i][0], pos[j][1]-pos[i][1])
                dist.append(tmp)

    # most_comon(n)とすると、最も出現回数が多い順からn要素を抽出する
    pq = Counter(dist).most_common(1)

    print(n - pq[0][1] if n != 1 else 1) __name__ == "__main__" __name__ "__main__" n = int(input()) n int(input()) int input() input pos = list() pos list() list for i in range(n):
        pos.append(list(map(int, input().split())))

    # まず1個のボールを最初選びそこから次のボールを選んだときの距離をp,qとして
    # それぞれの組み合わせの最汎値を求める
     i range(n) range n pos.append(list(map(int, input().split()))) pos.append pos append list(map(int, input().split())) list map(int, input().split()) map int input().split() ().split () input split dist = list() dist list() list for i in range(n):
        for j in range(n):
            if i != j:
                tmp = (pos[j][0] - pos[i][0], pos[j][1]-pos[i][1])
                dist.append(tmp)

    # most_comon(n)とすると、最も出現回数が多い順からn要素を抽出する
     i range(n) range n for j in range(n):
            if i != j:
                tmp = (pos[j][0] - pos[i][0], pos[j][1]-pos[i][1])
                dist.append(tmp)

    # most_comon(n)とすると、最も出現回数が多い順からn要素を抽出する
     j range(n) range n if i != j:
                tmp = (pos[j][0] - pos[i][0], pos[j][1]-pos[i][1])
                dist.append(tmp)

    # most_comon(n)とすると、最も出現回数が多い順からn要素を抽出する
     i != j i j tmp = (pos[j][0] - pos[i][0], pos[j][1]-pos[i][1]) tmp (pos[j][0] - pos[i][0], pos[j][1]-pos[i][1]) pos[j][0] - pos[i][0] pos[j][0] [j] pos j 0 pos[i][0] [i] pos i 0 pos[j][1]-pos[i][1] pos[j][1] [j] pos j 1 pos[i][1] [i] pos i 1 dist.append(tmp) dist.append dist append tmp pq = Counter(dist).most_common(1) pq Counter(dist).most_common(1) (dist).most_common (dist) Counter dist most_common 1 print(n - pq[0][1] if n != 1 else 1) print n - pq[0][1] if n != 1 else 1 n != 1 n 1 n - pq[0][1] n pq[0][1] [0] pq 0 1 1 n = int(input()) int(input()) n pos = list() list() pos dist = list() list() dist tmp = (pos[j][0] - pos[i][0], pos[j][1]-pos[i][1]) (pos[j][0] - pos[i][0], pos[j][1]-pos[i][1]) tmp pq = Counter(dist).most_common(1) Counter(dist).most_common(1) pq
from collections import Counter

if __name__ == "__main__":
    n = int(input())
    pos = list()
    for i in range(n):
        pos.append(list(map(int, input().split())))

    # まず1個のボールを最初選びそこから次のボールを選んだときの距離をp,qとして
    # それぞれの組み合わせの最汎値を求める
    dist = list()
    for i in range(n):
        for j in range(n):
            if i != j:
                tmp = (pos[j][0] - pos[i][0], pos[j][1]-pos[i][1])
                dist.append(tmp)

    # most_comon(n)とすると、最も出現回数が多い順からn要素を抽出する
    pq = Counter(dist).most_common(1)

    print(n - pq[0][1] if n != 1 else 1)
