N = int(input()) G = [[] for _ in range(N)] for i in range(N-1): U, V, C = map(int, input().split()) U -= 1 V -= 1 G[U].append((V, C)) G[V].append((U, C)) p = [-1]*N pw = [0]*N child = [[0] for _ in range(N)] ans = 0 def dfs(v, p): global ans for u, c in G[v]: if u != p: child[v].append(dfs(u, v)+c) child[v].sort(reverse=True) if len(child[v]) >= 2: if ans < child[v][0]+child[v][1]: ans = child[v][0]+child[v][1] return child[v][0] dfs(0, -1) print(ans)