B. Broken Polybahn
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output
No choices, no freedom, no moral dilemmas. Just Polybahn, stuck again.

Paul and Micha, tired after a lecture, decide to go to Limmat. But they take the brave decision and get on the Polybahn. In the middle of the ride, the Polybahn gets stuck by a tree, and out of boredom, Paul challenges Micha to count the number of connected subgraphs of this tree, where every subgraph has maximum matching of size 1. Micha gets confused by Paul's mind-bending challenge and calls you for help to count this number in modulo $$$10^9 + 7 $$$.

Luckily, Micha recalls the definition of a subgraph: A subgraph of a tree is some set of the tree vertices and some set of the tree edges. The set of edges must meet the following condition: Both ends of each edge from the set must belong to the chosen set of vertices.

Input

The first line contains a single integer $$$n$$$ $$$(2 \leq n \leq 10^5)$$$.

In the next $$$n - 1$$$ lines you are given the edges of the tree. In each of these lines you are given $$$u$$$ and $$$v$$$ $$$(1 \leq u, v \leq n)$$$ describing an edge between nodes $$$u$$$ and $$$v$$$.

Output

Print a single integer modulo $$$10^9+7$$$, number of connected subgraphs of the tree, where every subgraph has maximum matching of size exactly 1.

Examples
Input
3
1 2
2 3
Output
3
Input
5
5 3
3 4
5 1
3 2
Output
9
Note

The tree in the first sample has 3 connected subgraphs with maximum matching of size 1 each.