You are an expert competitive programmer. You will be given a problem statement, test case constraints and example test inputs and outputs. Please reason step by step about the solution (that must respect memory and time limits), then provide a complete implementation in c++17.

Your solution must read input from standard input (cin), write output to standard output (cout).
Do not include any debug prints or additional output.

Put your final solution within a single code block:
```cpp
<your code here>
```

Execution time limit: 1.0 seconds
Memory limit: 256.0 MB

# Problem
Pak Chanek has a tree called the key tree. This tree consists of $$$N$$$ vertices and $$$N-1$$$ edges. The edges of the tree are numbered from $$$1$$$ to $$$N-1$$$ with edge $$$i$$$ connecting vertices $$$U_i$$$ and $$$V_i$$$. Initially, each edge of the key tree does not have a weight.

Formally, a path with length $$$k$$$ in a graph is a sequence $$$[v_1, e_1, v_2, e_2, v_3, e_3, \ldots, v_k, e_k, v_{k+1}]$$$ such that:

- For each $$$i$$$, $$$v_i$$$ is a vertex and $$$e_i$$$ is an edge.
- For each $$$i$$$, $$$e_i$$$ connects vertices $$$v_i$$$ and $$$v_{i+1}$$$.

A circuit is a path that starts and ends on the same vertex.

A path in a graph is said to be simple if and only if the path does not use the same edge more than once. Note that a simple path can use the same vertex more than once.

The cost of a simple path in a weighted graph is defined as the maximum weight of all edges it traverses.

Count the number of distinct undirected weighted graphs that satisfy the following conditions:

- The graph has $$$N$$$ vertices and $$$2N-2$$$ edges.
- For each pair of different vertices $$$(x, y)$$$, there exists a simple circuit that goes through vertices $$$x$$$ and $$$y$$$ in the graph.
- The weight of each edge in the graph is an integer between $$$1$$$ and $$$2N-2$$$ inclusive. Each edge has distinct weights.
- The graph is formed in a way such that there is a way to assign a weight $$$W_i$$$ to each edge $$$i$$$ in the key tree that satisfies the following conditions:   For each pair of edges $$$(i, j)$$$, if $$$i<j$$$, then $$$W_i<W_j$$$.  For each pair of different vertex indices $$$(x, y)$$$, the cost of the only simple path from vertex $$$x$$$ to $$$y$$$ in the key tree is equal to the minimum cost of a simple circuit that goes through vertices $$$x$$$ and $$$y$$$ in the graph.
- Note that the graph is allowed to have multi-edges, but is not allowed to have self-loops.

Print the answer modulo $$$998\,244\,353$$$.

Two graphs are considered distinct if and only if there exists a triple $$$(a, b, c)$$$ such that there exists an edge that connects vertices $$$a$$$ and $$$b$$$ with weight $$$c$$$ in one graph, but not in the other.

## Input Format
The first line contains a single integer $$$N$$$ ($$$2 \le N \le 10^5$$$) — the number of vertices in the key tree.

The $$$i$$$-th of the next $$$N-1$$$ lines contains two integers $$$U_i$$$ and $$$V_i$$$ ($$$1 \le U_i, V_i \le N$$$) — an edge connecting vertices $$$U_i$$$ and $$$V_i$$$. The graph in the input is a tree.

## Output Format
An integer representing the number of distinct undirected weighted graphs that satisfy the conditions of the problem modulo $$$998\,244\,353$$$.

## Examples
```input
4
3 2
1 3
4 3
```
```output
540
```

## Note
The following is an example of a graph that satisfies.

The following is an assignment of edge weights in the key tree that corresponds to the graph above.

As an example, consider a pair of vertex indices $$$(1, 4)$$$.

- The circuit in the graph for this pair of vertices is $$$3 \xrightarrow{2} 2 \xrightarrow{4} 4 \xrightarrow{6} 2 \xrightarrow{1} 1 \xrightarrow{5} 3$$$ with a cost of $$$6$$$.
- The path in the key tree for this pair of vertices is $$$1 \xrightarrow{5} 3 \xrightarrow{6} 4$$$ with a cost of $$$6$$$.

Now solve the problem and return the code.