#include using namespace std; using ll = long long; #define rep(i, n) for (int i = 0; i < (int)(n); i++) #include using mint = atcoder::modint998244353; vector> mat_mul(vector> a, vector> b) { int n = a.size(); vector ans(n, vector(n, 0)); for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) for (int k = 0; k < n; k++) { ans[i][j] += a[i][k] * b[k][j]; } return ans; } vector> mat_pow(vector> a, ll b) { int n = a.size(); vector ans(n, vector(n, 0)); for (int i = 0; i < n; i++) ans[i][i] = 1; while (b) { if (b % 2) ans = mat_mul(ans, a); a = mat_mul(a, a); b /= 2; } return ans; } int main() { cin.tie(nullptr); ios_base::sync_with_stdio(false); int n, m; cin >> n >> m; vector> g(n); rep(i, m) { int a, b; cin >> a >> b; a--; b--; g[a].push_back(b); g[b].push_back(a); } vector x(n, vector(n, 0)); rep(i, n) { for (int j : g[i]) { x[i][j] = mint(1) / g[i].size(); } } ll s, t, a, b; cin >> s >> t >> a >> b; s--; t--; a--; b--; mint ans = 0; ans += mat_pow(x, t)[0][a]; ans *= mat_pow(x, s - t)[a][b]; ans /= mat_pow(x, s)[0][b]; cout << ans.val() << endl; return 0; }