#include<cstdio>
#include<cstring>
#include<iostream>
#include<vector>
#define maxn 23388
using namespace std;
int n, dis = -1, v, flag[maxn];
typedef pair<int,int> pii;
vector <pii> G[maxn];
void dfs(int sum, int pos){
if(sum > dis){
dis = sum ;
v = pos;
}
flag[pos] = 1;
for(int i=0 ; i<G[pos].size() ; i++){
if(!flag[G[pos][i].first]){
dfs(sum + G[pos][i].second, G[pos][i].first);
}
}
}
int main(){
scanf("%d",&n);
for(int i=0 ; i<n-1 ; i++){
int u, v, w;
scanf("%d%d%d",&u,&v,&w);
G[u].push_back(make_pair(v, w));
G[v].push_back(make_pair(u, w));
}
dfs(0, 1);
dis = -1;
memset(flag, 0, sizeof(flag));
dfs(0, v);
printf("%d\n",dis);
return 0;
}