题目描述
中二少年cenbo幻想自己统治着EuphoricField。由此他开始了EndlessFantasy。
EuphoricField有n座城市,m个民族。这些城市之间由n−1条道路连接形成了以城市1为根的有根树。
每个城市都是某一民族的聚居地,cenbo知道第i个城市的民族是Ai,人数是Bi。为了维护稳定,cenbo需要知道某个区域内人数最多的民族。
他向你提出n个询问,其中第i个询问是:求以i为根的子树内,人数最多的民族有是哪个,这个民族有多少人。
如果子树内人数最多的民族有多个,输出其中编号最小的民族。
输入格式
输入文件endless.in共有2×n行。
第一行有两个整数n,m。
接下来n−1行,每行有两个整数u,v,表示一条连接u和v的道路。
接下来n行,第i行有两个整数Ai,Bi。
输出格式
输出文件endless.out共有n行。
第i行两个整数x,y,分别表示以i为根的子树中人数最多的民族和它的人数。
样例
输入样例
8 6
1 2
1 3
2 4
4 5
3 6
5 7
1 8
2 8
2 5
1 1
3 1
6 7
5 6
1 10
4 6
输出样例
2 13
1 10
5 6
1 10
1 10
5 6
1 10
4 6
提示
数据范围
30%的数据,n<=1000;
60%的数据,n<=40000;
100%的数据,n<=400000,m<=n,1<=Ai<=m,0<=Bi<=1000。
输入文件较大请使用读入优化。