dfs
#include<iostream>
#include<cstdio>
#include<string.h>
#include<vector>
using namespace std;
int ans,f;
bool vis[10010];
struct node{
int to,d;
};
vector<node> v[10010];
void dfs(int x,int sum)
{
if(sum > ans)
{
ans = sum;
f = x;
}
vis[x]=1;
for(int i=0;i<v[x].size();i++)
{
node num = v[x][i];
if(!vis[num.to])
dfs(num.to,sum+num.d);
}
}
void add(int a,int b,int val)
{
node tmp;
tmp.to=b;
tmp.d=val;
v[a].push_back(tmp);
}
int main()
{
int a,b,val;
while(~scanf("%d%d%d",&a,&b,&val))
{
add(a,b,val);
add(b,a,val);
}
memset(vis,0,sizeof vis);
ans=0;
dfs(1,0);
memset(vis,0,sizeof vis);
dfs(f,0);
printf("%d\n",ans);
return 0;
}