n=int(eval(input()))

arr=[list(map(int,input().split())) for _ in range(n)]

arr=sorted(arr,key=lambda x:x[1])

arr=sorted(arr,key=lambda x:x[0])

ans=n

for i in range(n):

  for j in range(i+1,n):

    p,q=arr[j][0]-arr[i][0],arr[j][1]-arr[i][1]

    cnt=0

    flag=[0]*n

    for k in range(n):

      if flag[k]==1:

        continue

      flag[k]=1

      a,b=arr[k][0],arr[k][1]

      while 1:

        for l in range(n):

          if flag[l]==1:

            continue

          if a+p==arr[l][0] and b+q==arr[l][1]:

            flag[l]=1

            a=arr[l][0]

            b=arr[l][1]

            break

        else:

          break

      cnt+=1

    ans=min(ans,cnt)

print(ans)
n=int(eval(input()))

arr=[list(map(int,input().split())) for _ in range(n)]

cnt={}

for i in range(n):

  for j in range(n):

    if i==j:

      continue

    p=arr[i][0]-arr[j][0]

    q=arr[i][1]-arr[j][1]

    if (p,q) not in cnt:

      cnt[(p,q)]=1

    else:

      cnt[(p,q)]+=1

if n==1:

  print((1))

else:

  ans=n-max(cnt.values())

  print(ans)
n = int(eval(input()))
arr = [list(map(int, input().split())) for _ in range(n)]
arr = sorted(arr, key=lambda x: x[1])
arr = sorted(arr, key=lambda x: x[0])
ans = n
for i in range(n):
    for j in range(i + 1, n):
        p, q = arr[j][0] - arr[i][0], arr[j][1] - arr[i][1]
        cnt = 0
        flag = [0] * n
        for k in range(n):
            if flag[k] == 1:
                continue
            flag[k] = 1
            a, b = arr[k][0], arr[k][1]
            while 1:
                for l in range(n):
                    if flag[l] == 1:
                        continue
                    if a + p == arr[l][0] and b + q == arr[l][1]:
                        flag[l] = 1
                        a = arr[l][0]
                        b = arr[l][1]
                        break
                else:
                    break
            cnt += 1
        ans = min(ans, cnt)
print(ans)

n = int(eval(input()))
arr = [list(map(int, input().split())) for _ in range(n)]
cnt = {}
for i in range(n):
    for j in range(n):
        if i == j:
            continue
        p = arr[i][0] - arr[j][0]
        q = arr[i][1] - arr[j][1]
        if (p, q) not in cnt:
            cnt[(p, q)] = 1
        else:
            cnt[(p, q)] += 1
if n == 1:
    print((1))
else:
    ans = n - max(cnt.values())
    print(ans)

-arr = sorted(arr, key=lambda x: x[1]) -arr = sorted(arr, key=lambda x: x[0]) -ans = n +cnt = {} -    for j in range(i + 1, n): -        p, q = arr[j][0] - arr[i][0], arr[j][1] - arr[i][1] -        cnt = 0 -        flag = [0] * n -        for k in range(n): -            if flag[k] == 1: -                continue -            flag[k] = 1 -            a, b = arr[k][0], arr[k][1] -            while 1: -                for l in range(n): -                    if flag[l] == 1: -                        continue -                    if a + p == arr[l][0] and b + q == arr[l][1]: -                        flag[l] = 1 -                        a = arr[l][0] -                        b = arr[l][1] -                        break -                else: -                    break -            cnt += 1 -        ans = min(ans, cnt) -print(ans) +    for j in range(n): +        if i == j: +            continue +        p = arr[i][0] - arr[j][0] +        q = arr[i][1] - arr[j][1] +        if (p, q) not in cnt: +            cnt[(p, q)] = 1 +        else: +            cnt[(p, q)] += 1 +if n == 1: +    print((1)) +else: +    ans = n - max(cnt.values()) +    print(ans)