APLSPCへようこそ!
周知の通り、競技プログラミングのテストデータは大会前日の夜に作成されます。
不幸なことに、大帝(Daidi)は NFLSPC の前にグラフ理論の問題のデータを確認していた際、邪悪な小 P によってデータの最初の2行が削除されていることに気づきました。
断片化されたデータを見て、大帝は、データが正当なものとなるように最初の2行を補完する方法が何通りあるか、そしてそれを $998244353$ で割った余りがいくつになるかを知りたくなりました。
大帝は大帝であるため、あなたに入力ファイルを与え、この問題を解決するように命じました。
大帝は慈悲深く、少なくとも1通りの正当な補完方法が存在することを保証しています。
問題文
いくつかの行からなるデータが与えられます。以下の条件を満たす入力データが何通りあるか求めてください。
- そのデータを最初の2行削除すると、与えられたデータと一致する。
- そのデータが元の問題の入力形式を完全に満たしている。
元の問題の入力形式は以下の通りです。
1行目に正整数 $T$ が与えられ、続いて $T$ 個のテストケースが与えられる。
各テストケースの1行目には、2つの正整数 $n, m$ が与えられる。
続く $m$ 行には、グラフを表す2つの正整数 $u, v\ (1\leq u, v\leq n)$ が各行に与えられる。
グラフは連結とは限らず、多重辺や自己ループを含んでもよい。
元の問題の制約は以下の通りです。
$1\le T \leq 2\times 10^5$
$1\le n, m \leq 2\times 10^5$
入力形式
若干行($2\times 10^5$ 行以下)のデータが与えられる。各行には2つの正整数が含まれる。
出力形式
補完方法の数を $998244353$ で割った余りを1行で出力せよ。
入出力例
入力 1
2 1 1 1
出力 1
199999
制約
すべてのデータについて、入力されるすべての数は $[1, 2\times 10^5]$ の範囲内であり、読み込む行数は $2\times 10^5$ 行以下である。