杰哥找对象
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

杰哥感觉自己的绩点比赛双开有点孤单,想找一个 npy ,实现绩点比赛爱情三开。他想要一场甜甜的校园恋爱,但是总有猛男阻止杰哥寻找爱情,所以杰哥想找到 npy 并不容易。
整个武科大可以看作是一个 n 个结点和 m 条边的简单连通无向图(没有自环和重边,结点编号从 1 到 n ),杰哥、猛男(只有 1 个)、npy(只有 1 个)的初始点分别是 A,B,C 。每秒杰哥和猛男都会等概率地选择一条边并走向这条边的另一个点, npy 不会动。当杰哥和猛男走到同一个点时,杰哥会用 1 秒的时间打败猛男(猛男被打败后依然可以行走)。当杰哥和 npy 在同一点时,立即结束。当猛男和 npy 在同一点时什么也不发生。当三人在同一点时,杰哥先用 1 秒的时间打败猛男,再结束。你能帮帮杰哥计算结束需要的时间的期望吗(若杰哥和猛男的初始位置相同或三人初始位置均相同则杰哥不会打猛男,若杰哥和猛男在边上相遇也不会打猛男)?


输入描述:

每个文件只有一组测试用例。
第一行两个正整数 n,m 分别表示无向图的点数和边数。第二行一个正整数 C 表示 npy 的位置。接下来 m 行,每行两个正整数 u,v)表示 uv 之间有一条无向边,保证是一个简单连通无向图。


输出描述:

输出 n 行,每行有 n 个用一个空格隔开的整数,第 i 行第 j 列表示杰哥和猛男的初始位置分别在第 i 个结点和第 j 个结点的答案在模 998244353 意义后的结果。
示例1

输入

复制
4 6
4
1 2
1 3
1 4
2 3
2 4
3 4

输出

复制
521809552 646590096 646590096 181498977
646590096 521809552 646590096 181498977
646590096 646590096 521809552 181498977
0 0 0 0

说明

备注: