n=int(input()) graph=[] for i in range(n): graph.append([]) for i in range(n-1): a,b=map(int,input().split()) graph[a-1].append(b-1) graph[b-1].append(a-1) childcount=[0]*n children=[] for i in range(n): children.append([]) whitedp=[0]*n blackdp=[0]*n visited=[0]*n parent=[0]*n stack=[0] while stack: v=stack.pop() visited[v]=1 for i in graph[v]: if not visited[i]: stack.append(i) children[v].append(i) parent[i]=v stack=[] for i in range(n): childcount[i]=len(children[i]) if childcount[i]==0: stack.append(i) whitedp[i]=1 donechildcount=[0]*n while stack: v=stack.pop() par=parent[v] donechildcount[parent[v]]+=1 if donechildcount[parent[v]]==childcount[parent[v]]: stack.append(par) count=0 for chi in children[par]: count+=blackdp[chi] whitedp[par]=count count=0 for chi in children[par]: count+=max(whitedp[chi],blackdp[chi]) blackdp[par]=count print(n-max(whitedp[0],blackdp[0]))