It is preferrable to read the pdf statment.
Cuber QQ has recently learned jumping on graphs. He now wants to demonstrate his skills on a
cactus.
Recall that,
cactus refers to a graph with every edge appearing in
at most one
cycle. If you do not know what a
cycle is, formally, a
cycle of length $k$ denotes an edge sequence $(u_1,u_2), (u_2,u_3),\ldots,(u_{k-1},u_k),(u_k,u_1)$.
Assuming you are given an undirected cactus $G=(V, E)$, with $n$ vertices and $m$ edges. A jumping on the cactus can be thought of as a visit to all vertices where every vertex is visited exactly once. That can be represented with a permutation of $1$ to $n$, $p_1, p_2, \ldots, p_n$, and they are visited in order.
Cuber QQ also wishes his jumping to be gradually approaching or distancing away from a particular node $e$. Concretely, we define $d(a, b)$ to be the distance from $a$ to $b$ (the minimum edges needs to be passed through from $a$ to $b$). A jumping is defined to be monotonic if,
- for all edges $(u, v) \in E$, $d(u, e) < d(v, e)$ when $u$ is visited before $v$, or,
- for all edges $(u, v) \in E$, $d(u, e) > d(v, e)$ when $u$ is visited after $v$.
Count the number of different monotonic jumping plans. Since the answer can be very large, you should print the answer modulo $998~244~353$.