#include <cstdio>
#include <math.h>
#include <map>
std::map<float, int> DT[2102];

int n, P[2102][2], ans;

inline float dist(int a, int b){ return sqrt((P[a][0]-P[b][0])*(P[a][0]-P[b][0]) + (P[a][1]-P[b][1])*(P[a][1]-P[b][1])); }
int max(int a, int b) { return a>b?a:b; }
int f(int k, float d)
{
    if( DT[k][d] == 0 )
        for(int i = 1 ; i <= n ; i++ )
            if( i != k && dist(i, k) < d )
                DT[k][d] = max( DT[k][d], f(i, dist(i, k) ) + 1 );
    return DT[k][d];
}
int main()
{
    freopen("test.txt","r",stdin);
    scanf("%d", &n);
    printf("%d\n", n);
    for(int i = 1 ; i <= n ; i++ ) scanf("%d%d",&P[i][0], &P[i][1]);
    printf("%d", f(0, (float)100000) );
}

/*
 50
30 -46
-46 -67
-65 59
-45 88
77 -14
55 41
-33 -39
-100 -35
-51 19
68 -11
-12 61
94 17
23 -100
69 75
84 -66
-48 95
5 -24
63 -55
72 1
-87 -23
-76 -80
2 93
79 -89
-47 -12
-71 83
20 -30
-89 -84
-49 19
-67 22
49 -100
23 64
-57 -73
-95 -32
-24 48
-71 16
34 -8
89 42
36 91
-69 0
54 -76
19 -64
37 11
-61 9
-46 100
77 48
-100 -49
-69 87
30 46
6 88
81 34
*/
