import sys sys.setrecursionlimit(10**6) n = int(input()) graph = [[] for _ in range(n)] for i in range(n-1): u, v, w = map(int, input().split()) graph[u-1].append((v-1, w)) graph[v-1].append((u-1, w)) ans = 0 def dfs(v, p): global ans dists = [] for u, w in graph[v]: if u == p: continue dists.append(dfs(u, v) + w) dists.sort(reverse=True) if len(dists) >= 1: ans = max(ans, dists[0]) if len(dists) >= 2: ans = max(ans, dists[0] + dists[1]) return max(0, dists[0]) if dists else 0 dfs(0, -1) print(ans)