import sys def DFS(now,where): if tree[now]=={where} or len(tree[now])==0: return 0,0 else: mini=[] maxi=[] for i in tree[now]: if i!=where: small,large=DFS(i,now) mini.append(small+1) maxi.append(large+1) return min(maxi),max(mini) sys.setrecursionlimit(500000) N=int(input()) tree=[set() for i in range(N)] for i in range(N-1): a,b=map(int,input().split()) tree[a-1].add(b-1) tree[b-1].add(a-1) second,first=DFS(0,-1) print(first) print(second)