#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; int main() { int32_t n; cin >> n; vector> xys(n); for (auto &&xy : xys) { cin >> xy.first >> xy.second; } int32_t ans = 0; for (auto i = 0; i < n; ++i) { auto x1 = xys[i].first, y1 = xys[i].second; for (auto j = 0; j < n; ++j) { auto x2 = xys[j].first, y2 = xys[j].second; if (x1 == x2 || y1 == y2) continue; int32_t c = 2; for (auto k = 0; k < n; ++k) { auto x3 = xys[k].first, y3 = xys[k].second; if (x1 == x3 || x2 == x3 || y1 == y3 || y2 == y3) continue; if (y3 * (x1 - x2) == (y1 - y2) * (x3 - 1) + y1 * (x1 - x2)) ++c; } ans = max(ans, c); } } for (auto x = 0; x <= 100; ++x) { int32_t c = 0; for (auto &&xy : xys) { if (xy.first == x) ++c; } ans = max(ans, c); } for (auto y = 0; y <= 100; ++y) { int32_t c = 0; for (auto &&xy : xys) { if (xy.second == y) ++c; } ans = max(ans, c); } cout << ans << endl; return 0; }