During the season of autumn, leaves change colours and fall to the ground. To celebrate the autumn spirit, you are given a tree with nodes and different colours, where each node has a colour , and . For each colour from to , you must answer a query on the tree. The following process occurs: every second, a random leaf node is removed from the tree, falling to the ground. This process ends when colour is completely removed from the tree, or there is only node left. Out of every possible sequence of falling leaves, determine the number of sequences where colour is completely removed from the tree in the shortest amount of time. Note that if the colour does not exist, or the colour cannot be removed, there are sequences where it is removed.
Constraints
Subtask 1 [30%]
Subtask 2 [70%]
No additional constraints.
Input Specification
The first line contains space-separated integers and .
The next line contains space-separated integers, the -th of which is .
The next lines contain space-separated integers and , denoting an edge between nodes and .
Output Specification
Output lines, where the -th line contains the number of sequences where colour is completely removed from the tree in the shortest amount of time. Since these numbers may be large, please output the answers modulo .
Sample Input
10 3
1 3 3 2 1 3 1 1 2 2
1 6
3 9
4 6
5 2
2 10
7 10
8 6
6 9
9 10
Sample Output
24
105
630
Comments