#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int n,h[10005],e[20005],w[20005],ne[20005],idx,ans;
void add(int a,int b,int c){e[idx]=b,w[idx]=c,ne[idx]=h[a],h[a]=idx++;}
int dfs(int u,int fa)
{
int dist=0,d1=0,d2=0,i,j,d;
for(i=h[u];i!=-1;i=ne[i]){
j=e[i];
if(j==fa)continue;
d=dfs(j,u)+w[i],dist=max(dist,d);
if(d>=d1)d2=d1,d1=d;
else if(d>d2)d2=d;
}
ans=max(ans,d1+d2);
return dist;
}
int main()
{
int i,a,b,c;
scanf("%d",&n);
memset(h,-1,sizeof h);
for(i=0;i<n-1;i++){
scanf("%d%d%d",&a,&b,&c);
add(a,b,c),add(b,a,c);
}
dfs(1,-1);
printf("%d\n",ans);
return 0;
}