import sys input = sys.stdin.readline N = int(input()) G = [[] for _ in range(N)] for i in range(N-1): u, v, w = map(int, input().split()) u-=1 v-=1 G[u].append((v, w)) G[v].append((u, w)) def dfs(v, p): ret = [0, 0] for nv, w in G[v]: if nv==p: continue tmp = dfs(nv, v) ret.append(tmp+w) ret.sort(reverse=True) dist[v] = ret[:2] return ret[0] dist = [[0, 0] for _ in range(N)] tmp = dfs(0, -1) ans = 0 #print(tmp) #print(dist) for i in range(N): ans = max(ans, sum(dist[i])) print(ans)