n = gets.to_i
points = (1..n).map { gets.split.map(&:to_i) }

a = [0] * (n / 2)
k = n / 2 - 1
max = 0

loop do
  b = (0..n-1).to_a
  c = []
  k.downto(0) do |i|
    c << b.shift
    c << b.delete_at(a[i])
  end

  angles = c
    .map{|i| points[i]}
    .each_slice(2)
    .map {
      |p1, p2| p1[0] == p2[0] ? Float::INFINITY : (p2[1] - p1[1]) * 1000000 / (p2[0] - p1[0])
    }
  m = angles
    .group_by(&:itself)
    .values
    .map(&:size)
    .map {|s| s * (s - 1) / 2}
    .inject(:+)
  max = m if m > max
  
  a[k] += 1
  while k > 0 && a[k] > 2 * k
    a[k] = 0
    a[k -= 1] += 1
  end
  break if k == 0
  k = n / 2 - 1
end

p max

