# 次数1の頂点から探索を開始し、分岐が見つかった場合、分岐数 - 1を答えに加算 # 分岐があれば、それを開始地点にくっつけるイメージ N = int(input()) G = [[] for i in range(N)] indegree = [0] * N for _ in range(N - 1): a,b = map(int,input().split()) G[a - 1].append(b - 1) G[b - 1].append(a - 1) indegree[a - 1] += 1 indegree[b - 1] += 1 for i in range(N): if indegree[i] == 1: start = i break stack = [] stack.append([start, -1]) ans = 0 while stack: v,p = stack.pop() routes = 0 for child in G[v]: if child == p: continue routes += 1 stack.append([child, v]) ans += max(0, routes - 1) print(ans)