lines = []
while line = gets
    lines << line.chomp.split(' ').map(&:to_i)
end

N = lines[0][0]

x = []
y = []
for i in 1..N do
  x.push(lines[i][0].to_f)
  y.push(lines[i][1].to_f)
end

slope = []
for i in 1..(N-1) do
  for j in i+1..N do
    if y[i-1] == y[j-1] then
      slope.push(-1)
    else
      current_slope = (x[i-1] - x[j-1]) / (y[i-1] - y[j-1])
      slope.push(current_slope)
    end
  end
end

sort = []
freq = []
for i in 1..slope.length do
  if sort.include?(slope[i-1]) then
    a = sort.index(slope[i-1])
    freq[a] += 1
  else
    sort.push(slope[i-1])
    freq.push(1)
  end
end

pre_overlap = freq.max
overlap = ((1 + (1 + 8 * pre_overlap) ** 0.5) / 2).to_i
  
print N - overlap + 1