n = int(input()) node = [[] for _ in range(n)] # 隣接リスト e = [] for i in range(n - 1): x, y = map(int, input().split()) e.append((x - 1, y - 1)) node[x - 1].append(y - 1) node[y - 1].append(x - 1) from collections import deque mod = 10 ** 9 + 7 p = [-1] * n # p[i] はi の親。根なら-1 q = deque([0]) # 根はどこでも良い r = [] # トポロジカルソート.根から浅い順番にソートされて入っている dp = [1] * n # dfs : トポロジカルソートと葉ノードのdp初期化 while q: i = deque.popleft(q) r.append(i) # print(node[i]) for a in node[i]: # i の子node を探索する if p[a] != -1: continue p[a] = i node[a].remove(i) # 子への頂点のみを持つ deque.append(q, a) for i in r[::-1]: # 葉ノードから順番にdpを埋める for j in node[i]: dp[i] = max(dp[j],n-1-dp[j]) print(dp[0])