N = int(input()) edge = [[] for _ in range(N)] for _ in range(N-1): u,v,w = list(map(int,input().split())) u -= 1;v -= 1 edge[u].append((v,w)) edge[v].append((u,w)) from collections import deque def bfs(s): dist = [None]*N que = deque([s]) dist[s] = 0 while que: v = que.popleft() d = dist[v] for w, c in edge[v]: if dist[w] is not None: continue dist[w] = d + c que.append(w) d = max(dist) return dist.index(d), d u, _ = bfs(0) v, d = bfs(u) print(d)