#abc264h. [abc264_h]Perfect Binary Tree
[abc264_h]Perfect Binary Tree
Problem Statement
We have a rooted tree with vertices numbered .
The tree is rooted at Vertex , and the parent of Vertex is Vertex .
For each integer , solve the following problem:
There are ways to choose some of the vertices numbered between and so that Vertex is chosen.
How many of them satisfy the following condition: the subgraph induced by the set of chosen vertices forms a perfect binary tree (with vertices for a positive integer ) rooted at Vertex ?
Since the count may be enormous, print the count modulo .
What is an induced subgraph?
Let be a subset of the vertex set of a graph . The subgraph induced by this vertex set is constructed as follows:
-
Let the vertex set of equal .
-
Then, we add edges to as follows:
-
For all vertex pairs such that , if there is an edge connecting and in , then add an edge connecting and to .
What is a perfect binary tree? A perfect binary tree is a rooted tree that satisfies all of the following conditions:
- Every vertex that is not a leaf has exactly children.
- All leaves have the same distance from the root.
Here, we regard a graph with vertex and edges as a perfect binary tree, too.
Constraints
- All values in input are integers.
Input
Input is given from Standard Input in the following format:
Output
Print lines. The -th () line should contain the answer as an integer when .
Sample Input 1
10
1 1 2 1 2 5 5 5 1
Sample Output 1
1
1
2
2
4
4
4
5
7
10
The following ways of choosing vertices should be counted:
- when
- when
- when
- when
- when
- when
Sample Input 2
1
Sample Output 2
1
If , the -nd line of the Input is empty.
Sample Input 3
10
1 2 3 4 5 6 7 8 9
Sample Output 3
1
1
1
1
1
1
1
1
1
1
Sample Input 4
13
1 1 1 2 2 2 3 3 3 4 4 4
Sample Output 4
1
1
2
4
4
4
4
4
7
13
13
19
31