import sys from collections import deque def main(): sys.setrecursionlimit(1 << 25) N = int(sys.stdin.readline()) if N == 1: print(1) return edges = [[] for _ in range(N + 1)] for _ in range(N - 1): a, b = map(int, sys.stdin.readline().split()) edges[a].append(b) edges[b].append(a) parent = [0] * (N + 1) children = [[] for _ in range(N + 1)] q = deque() q.append(1) parent[1] = -1 # Mark root while q: u = q.popleft() for v in edges[u]: if parent[v] == 0 and v != parent[u]: parent[v] = u children[u].append(v) q.append(v) size = [1] * (N + 1) stack = [(1, False)] while stack: u, visited = stack.pop() if visited: for v in children[u]: size[u] += size[v] else: stack.append((u, True)) for v in reversed(children[u]): stack.append((v, False)) root_children = children[1] sizes = [] for c in root_children: sizes.append(size[c]) sizes.sort(reverse=True) k = min(2, len(sizes)) sum_two = sum(sizes[:k]) print(1 + sum_two) if __name__ == "__main__": main()