智乃的“K”叉树
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\hspace{15pt}对于一棵有根树,如果它的全部节点都满足:孩子个数不多于 k,且 k 是所有可取的值中最小的那个,则称它是一个 k 叉树。
\hspace{15pt}形式化的,记 {\rm cnt}_i 为有根树上,第 i 个节点的孩子数目,则 k = \max\{{\rm cnt}_1, {\rm cnt}_2, \dots, {\rm cnt}_n\}

\hspace{15pt}现在智乃想要给一棵由 n 个节点构成的无根树标记一个根节点,她发现选择的根节点不同时,k 的值也不同。
\hspace{15pt}例如在下图所示的这棵无根树中,选择 1 作为根节点时,它是一个“2 叉树”,而选择 3 作为根节点,则是一棵“3 叉树”。


\hspace{15pt}现在智乃想要你选择一个节点作为根节点,以最小化 k 的取值,请告诉她 k 的取值和选择的根节点,如果有多个符合条件可供选择的节点,则输出节点编号最小的那个。

输入描述:

\hspace{15pt}第一行输入一个正整数 n\left(2\leq n \leq 10^5\right) 代表树的节点数量。
\hspace{15pt}此后 n-1 行,第 i 行输入两个正整数 u_i,v_i\left(1\leq v_i,u_i \leq n;\ u_i \neq v_i\right) 代表无根树上的第 i 条无向边连接节点 u_iv_i

输出描述:

\hspace{15pt}在一行上输出两个正整数,代表最小的 k 值和对应的根节点编号。
示例1

输入

复制
4
3 1
2 3
3 4

输出

复制
2 1

说明

\hspace{15pt}这个样例已经在题干中给出。
示例2

输入

复制
3
1 2
1 3

输出

复制
1 2

备注:

\hspace{15pt}对于退化成链的情况,在本题中称它是“1 叉树”,注意数据范围,没有单点的情况。