#include<bits/stdc++.h>
using namespace std;
int n,f[300][300],w;
struct node{
int x,y,w;
}a[300];
inline double L(node a,node b){
return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y+b.y));
}
int main(){
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i].x>>a[i].y>>a[i].w;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(L(a[i],a[j])<=a[i].w) f[i][j]=1;
for(int k=1;k<=n;k++)
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(i!=j&&j!=k&&i!=k&&f[i][k]&&f[k][j]) f[i][j]=1;
int ans=-1,sum;
for(int i=1;i<=n;i++){
sum=0;
for(int j=1;j<=n;j++)
sum+=f[i][j];
ans=max(ans,sum);
}
cout<<ans;
return 0;
}