def main(): N = int(input()) G = [[] 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) #print(G) stack = [] stack.append(~0) stack.append(0) par = [-1]*N leaf = set([]) #葉っぱ bw = [-1]*N while stack: v = stack.pop() if v >= 0: cnt = 0 for u in G[v]: if u == par[v]: continue par[u] = v stack.append(~u) stack.append(u) cnt += 1 if cnt == 0: leaf.add(v) else: v = ~v if v in leaf: #葉なら常に白 bw[v] = 0 else: for u in G[v]: if bw[u] == 0: #一つでも子に白があれば黒に塗れる bw[v] = 1 break else: bw[v] = 0 #print(bw) #print(leaf) ans = sum(bw) print(ans) if __name__ == '__main__': main()