#include #include #include #include #include #include #include #include #include #include #include #include #include #define rep(i, n) for(int i = 0; i < (int)(n); ++i) using namespace std; using lint = int64_t; struct point {int x; int y;}; bool judge(point a, point b, point c) {return (a.x - b.x) * (c.y - a.y) - (a.y - b.y) * (c.x - a.x) == 0;} int main() { int N; cin >> N; vector P(N); rep(i, N) { int X, Y; cin >> X >> Y; P[i] = point{X, Y}; } int ans = 0; rep(i, N) rep(j, N) { if (i == j) continue; int res = 0; rep(k, N) { if (judge(P[i], P[j], P[k])) ++res; } ans = max(ans, res); } cout << ans << "\n"; return 0; }