怪兽(superm)

怪兽(superm)

[问题描述]
大 M 是一只怪兽,准备到比特王国吃人。比特王国有 n 个城市,城市之间由
n-1 条无向的路径连接,通过每条路径的时间为 1。其中有 m 个特别的城市,这
m 个城市里都各有一个大神,于是大 M 打算不管普通人,只吃掉这些大神。然而
大 M 是一只具有特别能力的怪物,它可以一开始降临到 n 个城市中的任意一个城
市,同时还有一次机会在任意两个城市间打开一个虫洞,不消耗时间就能相互到
达。
大 M 想知道它最少要花多少时间来吃掉这些大神(吃的时间忽略不计),如
果你不帮它它就会吃了你。
当然,大 M 是不属于这个时空的存在,所以在他吃完所有大神之后需要回到
最初降临的城市,通过时空门返回原来的位面。
[输入格式]
第一行两个整数 n,m(1<=m<=n<=123456),表示城市的总数和存在大神的
城市数。
接下来 n-1 行每行两个数 x,y(1<=x,y<=n),表示 x,y 两个城市间有一条无
向的路径。
最后一行有 m 个整数,表示有大神的城市编号。
[输出格式]
第 1 行输出一个整数表示为了时间最短,大 M 一开始应该降临在哪个城市(如
果有多个最短时间则输出字典序最小的城市编号)。
第 2 行输出一个整数表示能达到的最短时间。
[输入样例 1]
7 2
1 2
1 3
1 4
3 5
3 6
3 7
2 7
[输出样例 1]
2
3
[输入样例 2]
6 4
1 2
2 3
2 4
4 5
4 6
2 4 5 6
[输出样例 2]
2
4
[数据规模]
对于 20%的数据,n<=10;
对于 100%的数据,m<=n<=123456