n = int(input()) G = [[] for _ in range(n)] for _ in range(n - 1): a,b = map(int,input().split()) a -= 1 b -= 1 G[a].append(b) G[b].append(a) def max_depth(s,return_dist = False): ans = 0 idx = 0 depth = [-1] * n depth[s] = 0 stack = [s] while stack: p = stack.pop() for v in G[p]: if depth[v] >= 0: continue depth[v] = depth[p] + 1 if ans < depth[v]: ans = depth[v] idx = v stack.append(v) if return_dist: return ans,idx,depth return ans,idx depth,s = max_depth(0) max_dep,i,dist = max_depth(s,True) d = max_dep ans = 0 while d > 1: for e in G[i]: if dist[e] == d - 1: i = e ans += len(G[e]) - 2 d -= 1 break print(ans)