题目描述
We define a spanning tree of a graph to be a BFS tree rooted at vertex $s$ if and only if for every node $t$ the shortest distance between $s$ and $t$ in the graph is equal to the shortest distance between $s$ and $t$ in the spanning tree.
Given a graph, we define $f(x,y)$ to be the number of spanning trees of that graph that are BFS trees rooted at vertices $x$ and $y$ at the same time.
You are given an undirected connected graph with $n$ vertices and $m$ edges. Calculate $f(i,j)$ for all $i$, $j$ by modulo $998\,244\,353$.
Input
The first line contains two integers $n$, $m$ ($1 \le n \le 400$, $0 \le m \le 600$) — the number of vertices and the number of edges in the graph.
The $i$-th of the next $m$ lines contains two integers $a_i$, $b_i$ ($1 \leq a_i, b_i \leq n$, $a_i < b_i$), representing an edge connecting $a_i$ and $b_i$.
It is guaranteed that all edges are distinct and the graph is connected.
Output
Print $n$ lines, each consisting of $n$ integers.
The integer printed in the row $i$ and the column $j$ should be $f(i,j) \bmod 998\,244\,353$.
输入格式
见题面 Input 部分
输出格式
见题面 Output 部分
样例输入
样例输出
提示
The following picture describes the first example.
The tree with red edges is a BFS tree rooted at both $1$ and $2$.
Similarly, the BFS tree for other adjacent pairs of vertices can be generated in this way.