ztr loves trees

Accepts: 5
Submissions: 83
Time Limit: 6000/2500 MS (Java/Others)
Memory Limit: 131072/65536 K (Java/Others)
Problem Description
Super Deity ztr likes trees from childhood,CCTV-children:"The apple on the apple tree.You and I under the apple tree.Play games in front of the apple tree.So many happiness". One day,qzh visit ztr to ask some questions.To give a tree with a root,each vertex has a value.Each time query the median of a subtree. ztr said:this is a water problem,do you do it?But qzh show cannot help but want you who is also a Super Deity to help him.Could you help him?
Input
There are T test cases. The first line of input contains an positive integer T indicating the number of test cases. For each test case: Each line contains two positive integer n,m.indicating the number of vetrex and the number of query times. The next line contains n numbers, the ith number indicating the value of vertex i. The next n-1 lines,each line contains two numbers u and v,indicating there is a edge form u to v. The next m lines, each line contains a numbers x.indicating query the median of subtree x. $1<=T<=3,1<=n<=10^{5},1<=m<=10^{6},1<=u<=v<=n,1<=val<=10^{9}.$ The vetrex 1 is the root of the tree.Guarantee input a tree with a root.
Output
For each test case:print a line.To avoid huge output,you should hash each answer first,then print it. The method to hash:a[i] indicates the ith query result,$ans =\sum a[i]*10^{m-i} \;mod\;1,000,000,007$ Round to the nearest tenth
Sample Input
1
5 3
1 2 3 4 5
1 2
2 3
3 4
4 5
1
2
3
Sample Output
339.0