import sys sys.setrecursionlimit(1 << 25) def main(): input = sys.stdin.read().split() n = int(input[0]) edges = [[] for _ in range(n + 1)] index = 1 for _ in range(n - 1): u = int(input[index]) v = int(input[index + 1]) edges[u].append(v) edges[v].append(u) index += 2 from collections import deque parent = [0] * (n + 1) visited = [False] * (n + 1) order = [] stack = [(1, False)] while stack: node, processed = stack.pop() if processed: order.append(node) continue if visited[node]: continue visited[node] = True stack.append((node, True)) for neighbor in reversed(edges[node]): if not visited[neighbor] and neighbor != parent[node]: parent[neighbor] = node stack.append((neighbor, False)) used = [False] * (n + 1) count = 0 for u in order: for v in edges[u]: if v == parent[u] or parent[v] != u: continue if not used[u] and not used[v]: used[u] = True used[v] = True count += 1 print(count) if __name__ == "__main__": main()