use std::io::Read; fn main() { let mut s = String::new(); std::io::stdin().read_to_string(&mut s).ok(); let v: Vec<_> = s .lines() .skip(1) .enumerate() .map(|(i, s)| { let x: Vec = s.split(' ').flat_map(str::parse).collect(); (i, x[0], x[1]) }) .collect(); let mut a = 2; for (i, x, y) in v.iter() { for (j, p, q) in v.iter() { if i == j { continue; } let mut c = 0; for (_, b, d) in v.iter() { if (p - x) * (d - y) == (q - y) * (b - x) { c += 1; } } a = a.max(c); } } println!("{a}") }