#agc056f. [agc056_f]Degree Sequence in DFS Order

[agc056_f]Degree Sequence in DFS Order

题目描述

已知整数 N,MN,M, 求有多少个整数序列 a=(a1,a2,,aN)a=(a_1,a_2,\cdots,a_N) 可以由以下方式生成,答案对 998244353998244353 取模。

  • 选择一个 NN 个点,MM 条边的无向连通图 GG,要求无自环,但可以有重边。
  • 进行 DFS,令 aia_i 表示遍历到的第 ii 个点的度数,具体的,执行以下代码:
a = empty array

dfs(v):
    visited[v]=True
    a.append(degree[v])
    for u in g[v]:
        if not visited[u]:
            dfs(u)

dfs(arbitrary root)

这里,gg 是图 GG 的邻接表,g[v]g[v] 是任意顺序的与 vv 相连的顶点列表。

举个例子,对于 N=4,M=5N=4,M=5,一个可能的 a=(2,4,1,3)a=(2,4,1,3),图 GG 如下图所示:

G

顶点上的数字表示访问他们的顺序,橙色箭头表示遍历时经过的边。

数据范围

  • 2NM1062\le N\le M\le 10^6

输入格式

一行两个数 N,MN,M

输出格式

一行一个数,表示答案。

样例解释 1\textbf 1

只有 a=(2,2)a=(2,2) 合法。

Translated by @nr0728.