#abc160f. [abc160_f]Distributing Integers
[abc160_f]Distributing Integers
Problem Statement
We have a tree with vertices numbered to . The -th edge in this tree connects Vertex and . For each , solve the problem below:
- Consider writing a number on each vertex in the tree in the following manner:
- First, write on Vertex .
- Then, for each of the numbers in this order, write the number on the vertex chosen as follows:
- Choose a vertex that still does not have a number written on it and is adjacent to a vertex with a number already written on it. If there are multiple such vertices, choose one of them at random.
- Find the number of ways in which we can write the numbers on the vertices, modulo .
Constraints
- The given graph is a tree.
Input
Input is given from Standard Input in the following format:
Output
For each in this order, print a line containing the answer to the problem.
Sample Input 1
3
1 2
1 3
Sample Output 1
2
1
1
The graph in this input is as follows:
For , there are two ways in which we can write the numbers on the vertices, as follows:
- Writing on Vertex , respectively
- Writing on Vertex , respectively
Sample Input 2
2
1 2
Sample Output 2
1
1
The graph in this input is as follows:
Sample Input 3
5
1 2
2 3
3 4
3 5
Sample Output 3
2
8
12
3
3
The graph in this input is as follows:
Sample Input 4
8
1 2
2 3
3 4
3 5
3 6
6 7
6 8
Sample Output 4
40
280
840
120
120
504
72
72
The graph in this input is as follows: