#include using namespace std; #define rep(i,n) for(int i=0;i=0;i--) #define REPR(i,s,n) for(int i=(s);i>=(n);i--) #define all(a) (a).begin(),(a).end() #define rall(a) (a).rbegin(),(a).rend() #define Eunique(v) v.erase(unique(all(v)),v.end()) #define Eback(s) s.erase(s.end()-1,s.end()) #define rev(v) reverse(all(v)) #define minvec(v) *min_element(all(v)) #define maxvec(v) *max_element(all(v)) #define sumvec(v) accumulate(all(v),0LL) #define mapmin(v) v.rbegin()->first #define mapmax(v) v.begin()->first #define pb push_back #define pf push_front #define m_p make_pair #define DOUBLE fixed << setprecision(15) #define OK cerr<<"OK\n" #define OK1 cerr<<"OK1\n" #define OK2 cerr<<"OK2\n" #define SIZE(s) (int)s.size() #define INF ((1LL<<62)-(1LL<<31)) #define zero(x,n) setw(x) << setfill('0') << n #define endl '\n' typedef long long ll; typedef vector vi; typedef vector vvi; typedef vector vll; typedef vector vvll; typedef vector vd; typedef vector vvd; typedef vector vc; typedef vector vvc; typedef vector vb; typedef vector vvb; typedef vector vs; typedef pair pll; typedef pair pii; typedef vector> vpii; typedef vector> vpll; const double pi = acos(-1.0); const ll mod=1000000007; const ll mod2=998244353; template ostream& operator<<(ostream& ost, const pair&p) { ost << "{" << p.first << ", " << p.second << "} "; return ost; } template ostream& operator<<(ostream& ost, const vector&v) { ost << "{"; for (int i = 0; i<(int)v.size(); i++) { if (i)ost << " "; ost << v[i]; } ost << "} \n"; return ost; } template ostream& operator<<(ostream& ost, const map&v) { ost << "{"; for (auto p:v) { ost << "{" << p.first << ", " << p.second << "} "; } ost << "} "; return ost; } template inline bool chmax(T& a, T b){if(a inline bool chmin(T& a, T b){if(a>b){a=b;return true;} return false;} void YES(bool b) {cout << ((b)?"YES\n":"NO\n");} void Yes(bool b) {cout << ((b)?"Yes\n":"No\n");} void yes(bool b) {cout << ((b)?"yes\n":"no\n");} void Yay(bool b) {cout << ((b)?"Yay!\n":":(\n");} template void VIN(vector &v,int n){for(int i=0;i> v[i];} template void VOUT(vector &v){ ll n=(int)v.size(); for(int i=0;i void VOUTL(vector &v){ ll n=(int)v.size(); for(int i=0;i0){ if(b&1){ c=a*c%mod; } a=a*a%mod; b>>=1; } return c;} ll gcd(ll x, ll y) {return __gcd(x,y);} ll lcm(ll x, ll y) {return x/__gcd(x,y)*y;} int main() { ll n; ll ans=0; cin >> n; vd x(n),y(n); rep(i,n) cin >> x[i] >> y[i]; rep(i,n-1){ REP(j,i+1,n-1){ double d=abs(y[j]-y[i])/abs(x[j]-x[i]); ll cnt=1; rep(k,n){ double tmp=abs(y[k]-y[i])/abs(x[k]-x[i]); if(d==tmp) cnt++; } chmax(ans,cnt); } } cout << ans << endl; return 0; }