N=int(input()) G=[[] for i in range(N)] R=[set() for i in range(N)] for i in range(N-1): a,b=map(int,input().split()) G[a-1].append(b-1) G[b-1].append(a-1) R[a-1].add(b-1) R[b-1].add(a-1) from collections import deque S=deque() dp=[0]*N used=[False]*N h=[] for i in range(N): if len(G[i])==1: S.append(i) used[i]=True while S: x=S.pop() for y in G[x]: dp[x]+=dp[y] if len(G[x])-2*dp[x]>2: dp[x]+=1 h.append(x) for y in G[x]: if used[y]==True: continue R[y].remove(x) if len(R[y])==1: used[y]=True S.append(y) used=[False]*N v=[0]*N for i in range(N): v[i]=len(G[i]) S=deque() for pos in h: S.append(pos) used[pos]=True while S: x=S.pop() for y in G[x]: if used[y]==True: continue v[y]-=2 if v[y]<=0: used[y]=True S.append(y) result=len(h) for i in range(N): if used[i]==False: result+=1 break print(result)