#include <bits/stdc++.h>
using namespace std;
template<class T> inline void mint(T& a, T b) { if (a > b) a = b; }
template<class T> inline void maxt(T& a, T b) { if (a < b) a = b; }
const int maxn = 233;
int X[maxn], Y[maxn], ord[maxn], hhx, hhy;
inline int GET(int i) { return hhx * Y[i] - hhy * X[i]; }
inline bool cmp(int a, int b) { return GET(a) < GET(b); }
int main()
{
freopen("asm_fuel.in", "r", stdin);
#ifndef debug
freopen("asm_fuel.out", "w", stdout);
#endif
int n, ans = 0; scanf("%d", &n);
for (int i = 0; i < n; ++i) scanf("%d%d", X + i, Y + i);
for (int i = 0; i < n; ++i) ord[i] = i;
for (int i = 0; i < n; ++i)
for (int j = i + 1; j < n; ++j)
{
hhx = X[i] - X[j]; hhy = Y[i] - Y[j];
sort(ord, ord + n);
for (int k = 0, kk = 0; k < n; k = kk)
{
while (kk < n && GET(kk) == GET(k)) ++kk;
maxt(ans, kk);
}
}
printf("%d\n", ans);
}