#include "bits/stdc++.h" #define MOD 1000000007 #define rep(i, n) for(ll i=0; i < (n); i++) #define ALL(v) v.begin(),v.end() #define FOR(i, j, k) for(ll i=j;i llvec; typedef vector dvec; typedef pair P; typedef long double ld; struct Edge{ll from, to, cost;}; struct node{ll cost, to; bool friend operator>(node a, node b){ return a.cost>b.cost; } }; ll mod(ll a, ll mod){ ll res = a%mod; if(res<0)res=res + mod; return res; } ll modpow(ll a, ll n, ll mod){ ll res=1; while(n>0){ if(n&1) res=res*a%mod; a=a*a%mod; n>>=1; } return res; } ll modinv(ll a, ll mod){ return modpow(a, mod-2, mod); } ll gcd(ll a, ll b){ ll r = a%b; if(r==0) return b; else return gcd(b, a%b); } bool is_prime(ll n){ ll i = 2; if(n==1)return false; if(n==2)return true; bool res = true; while(i*i > N; llvec x(N), y(N); rep(i, N)cin >> x[i] >> y[i]; ll ans = 0; rep(i, N){ map cnt; FOR(j, i+1, N){ if(i==j)continue; ll a=x[j]-x[i]; ll b=y[j]-y[i]; if(a==0)cnt[2000]++; else cnt[(double)(b)/a]++; } for(auto i:cnt){ ans = max(ans, i.second+1); } } cout << ans; return 0; }