import sys sys.setrecursionlimit(10**8) import pypyjit pypyjit.set_param('max_unroll_recursion=-1') 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) dp = [[0] * (2) for _ in range(N)] def dfs(pos, pre): zero, one = 0, 1 # zero ... 当該頂点を削除する(子の zero、one の大きい方の和) # one ... 残す(zeroの方だけ足す +1) for nex in G[pos]: if nex == pre: continue memo0, memo1 = dfs(nex, pos) zero += max(memo0, memo1) one += memo0 return zero, one zero, one = dfs(0, -1) ans = max(zero, one) print(ans)