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)