N = int(input()) G = [[] for _ in range(N)] for i in range(N-1): u, v, w = map(int, input().split()) G[u-1].append((v-1, w)) G[v-1].append((u-1, w)) ans = 0 def dfs(v, p): global ans res = [0, 0] for u, w in G[v]: if u == p: continue res.append(dfs(u, v) + w) res.sort(reverse=True) ans = max(ans, res[0] + res[1], res[0]) return res[0] dfs(0, -1) print(ans)