#define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include const int MOD = 1000000007; const int INF = 1000000000; //1e9 const int NIL = -1; const long long LINF = 1000000000000000000; // 1e18 const long double EPS = 1E-10; template inline bool chmax(T &a, const S &b){ if(a < b){ a = b; return true; } return false; } template inline bool chmin(T &a, const S &b){ if(b < a){ a = b; return true; } return false; } int main(){ int N; std::cin >> N; int ans(0); std::vector X(N), Y(N); for(int i(0); i < N; ++i) std::cin >> X[i] >> Y[i]; for(int i(0); i < N; ++i){ for(int j(i+1); j < N; ++j){ int cnt(2); if(X[i] == X[j]){ for(int k(0); k < N; ++k){ if(k == i || k == j) continue; if(X[i] == X[k]) ++cnt; } }else if(Y[i] == Y[j]){ for(int k(0); k < N; ++k){ if(k == i || k == j) continue; if(Y[i] == Y[k]) ++cnt; } }else{ int dx(X[i]-X[j]), dy(Y[i]-Y[j]); for(int k(0); k < N; ++k){ if(k == i || k == j) continue; int Dx(X[i]-X[k]), Dy(Y[i]-Y[k]); if(dx*Dy == dy*Dx) ++cnt; } } chmax(ans, cnt); } } std::cout << ans << std::endl; return 0; }