There is a meteor shower on the sky and there are *n* meteors. The sky can be viewed as a 2D Euclid Plane and the meteor is point on this plane. 

Fox Ciel looks at the sky. She finds out that the orbit of each meteor is a straight line, and each meteor has a constant velocity. Now Ciel wants to know: what is the maximum number of meteors such that any pair met at the same position at a certain time? Note that the time is not limited and can be also negative. The meteors will never collide when they appear at the same position at the same time.
The first line contains an integer *n* (1 ≤ *n* ≤ 1000). Each of the next *n* lines contains six integers: *t*<sub class="lower-index">1</sub>, *x*<sub class="lower-index">1</sub>, *y*<sub class="lower-index">1</sub>, *t*<sub class="lower-index">2</sub>, *x*<sub class="lower-index">2</sub>, *y*<sub class="lower-index">2</sub> — the description of a meteor's orbit: at time *t*<sub class="lower-index">1</sub>, the current meteor is located at the point (*x*<sub class="lower-index">1</sub>, *y*<sub class="lower-index">1</sub>) and at time *t*<sub class="lower-index">2</sub>, the meteor is located at point (*x*<sub class="lower-index">2</sub>, *y*<sub class="lower-index">2</sub>) ( - 10<sup class="upper-index">6</sup> ≤ *t*<sub class="lower-index">1</sub>, *x*<sub class="lower-index">1</sub>, *y*<sub class="lower-index">1</sub>, *t*<sub class="lower-index">2</sub>, *x*<sub class="lower-index">2</sub>, *y*<sub class="lower-index">2</sub> ≤ 10<sup class="upper-index">6</sup>; *t*<sub class="lower-index">1</sub> ≠ *t*<sub class="lower-index">2</sub>). 

There will be no two meteors are always in the same position for any time.
def meteor_shower(n):
  """
  Finds the maximum number of meteors such that any pair met at the same position at a certain time.

  Args:
    n: The number of meteors.

  Returns:
    The maximum number of meteors that can meet at the same position.
  """

  meteors = []
  for _ in range(n):
    t1, x1, y1, t2, x2, y2 = map(int, input().split())
    meteors.append((t1, x1, y1, t2, x2, y2))

  max_met = 0
  for i in range(n):
    for j in range(i + 1, n):
      if can_meet(meteors[i], meteors[j]):
        max_met = max(max_met, 2)

  return max_met

def can_meet(m1, m2):
  """
  Checks if two meteors can meet at the same position.

  Args:
    m1: The first meteor.
    m2: The second meteor.

  Returns:
    True if the two meteors can meet at the same position, False otherwise.
  """

  v1 = (m2[0] - m1[0], m2[2] - m1[2])
  v2 = (m2[1] - m1[1], m2[3] - m1[3])
  d = v1[0] * v2[1] - v1[1] * v2[0]
  if d == 0:
    return False

  t = (m1[0] * v2[1] - m1[1] * v2[0]) / d
  if 0 <= t <= 1:
    return True

  return False

if __name__ == "__main__":
  n = int(input())
  print(meteor_shower(n))
