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)) dist = [0] * N def dfs(v, p): for u, w in G[v]: if u == p: continue dist[u] = dist[v] + w dfs(u, v) dfs(0, -1) leaf = [i for i in range(N) if len(G[i]) == 1] leaf.sort(key=lambda x: dist[x], reverse=True) v = leaf[0] dist = [0] * N dfs(v, -1) print(max(dist))