def line(x1,y1,x2,y2): if x1==x2: return ("I",x1) elif y1==y2: return (y1,"I") else: #Y=aX+b a=(y1-y2)/(x1-x2) return (int((y1-(a*x1))*10**5),int(a*10**5)) N=int(input()) L=[] D={} for i in range(N): x,y=map(int,input().split()) L.append([x,y]) for i in range(N): for j in range(N): if i==j: continue else: if line(L[i][0],L[i][1],L[j][0],L[j][1]) not in D: D[line(L[i][0],L[i][1],L[j][0],L[j][1])]=1 else: D[line(L[i][0],L[i][1],L[j][0],L[j][1])]+=1 Max=max(D.values()) #print(D) #print(Max) for i in range(1,10**3): if i*(i-1)==Max: print(i) exit()