from collections import deque def bfs(s): dq = deque() dq.append([s, 0]) dist = [10**9 for _ in range(N)] dist[s] = 0 res = [] while len(dq) != 0: p, h = dq.popleft() res.append(p) for e,_ in edge[p]: if dist[e] == 10**9: dq.append([e, h + 1]) dist[e] = h + 1 return res N=int(input()) edge = [[] for _ in range(N)] for _ in range(N-1): u,v,w=map(int,input().split()) edge[u-1].append([v-1,w]) edge[v-1].append([u-1,w]) res = bfs(0) tans=[-1]*N ans=0 for r in res[::-1]: d=[0,0] for e,w in edge[r]: if tans[e] == -1: continue d.append(tans[e]+w) d.sort(reverse=True) tans[r]=d[0] ans=max(ans,d[0]+d[1]) print(ans)