from collections import deque N = int(input()) G = [list() for _ in range(N)] for i in range(N - 1): u, v = map(int, input().split()) u -= 1 v -= 1 G[u].append(v) G[v].append(u) # 木の直径を求める dist0 = [-1] * N dist0[0] = 0 que = deque([0]) while que: pos = que.popleft() for nex in G[pos]: if dist0[nex] == -1: dist0[nex] = dist0[pos] + 1 que.append(nex) # 0 から一番遠い点uは? u = dist0.index(max(dist0)) # u から BFS distu = [-1] * N distu[u] = 0 que = deque([u]) while que: pos = que.popleft() for nex in G[pos]: if distu[nex] == -1: distu[nex] = distu[pos] + 1 que.append(nex) v = distu.index(max(distu)) diameter = distu[v] ans = N - 1 + (N - diameter - 1) print(ans)