#include <iostream>#include <cstring>#include <cstdio>#include <cstdlib>#include <cmath>#include <climits>#include <queue>#include <stack>#include <map>#include <vector>#include <algorithm>using namespace std;const double pi=3.141592654;const double eps=1e-8;struct Point{ int x,y; Point(int x=0,int y=0):x(x),y(y){};}a[1005];typedef Point Vector;double angle[1005];int dcmp(double x){ if(abs(x)<eps) return 0; else return x<0?-1:1;}bool cmp(const double& a,const double& b){ return a<b;}int main(){ int n; while(scanf("%d",&n)!=EOF){ for(int i=0;i<n;i++){ scanf("%d%d",&a[i].x,&a[i].y); } int ans=2; for(int i=0;i<n;i++){ int tmp=2,m=0; for(int j=0;j<n;j++) if(j!=i){ angle[m++]=atan2(a[j].y-a[i].y*1.0,a[j].x-a[i].x*1.0); } sort(angle,angle+m,cmp); double iangle=angle[0]; for(int j=1;j<m;j++){ if(dcmp(iangle-angle[j])==0){ tmp++; }else{ iangle=angle[j]; tmp=2; } ans=max(ans,tmp); } } printf("%dn",ans); } return 0;}