Добро пожаловать на APLSPC!
Как известно, тестовые данные для соревнований готовятся за ночь до начала.
К несчастью, во время проверки данных для задачи по теории графов на NFLSPC, император обнаружил, что у всех данных были удалены первые две строки.
Глядя на поврежденные данные, император внезапно захотел узнать, сколько существует способов восстановить первые две строки так, чтобы данные стали корректными. Ответ нужно вывести по модулю $998244353$.
Поскольку император есть император, он передает вам входной файл и просит решить эту задачу.
Император проявил милосердие и гарантирует, что существует хотя бы один способ корректного восстановления.
Даны несколько строк данных. Найдите количество способов дополнить их так, чтобы:
- После удаления первых двух строк полученные данные совпадали с данными, предоставленными во входном файле.
- Полученные данные полностью соответствовали формату ввода исходной задачи.
Формат ввода исходной задачи следующий:
Первая строка содержит целое положительное число $T$, далее следуют $T$ наборов данных.
Первая строка каждого набора данных содержит два целых положительных числа $n, m$.
Далее следуют $m$ строк, каждая из которых содержит два целых положительных числа $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$ строк), в каждой строке два целых положительных числа.
Выходные данные
Одна строка, содержащая одно целое число — количество способов восстановления по модулю $998244353$.
Примеры
Входные данные 1
2 1 1 1
Выходные данные 1
199999
Ограничения
Для всех данных: все числа во входных данных находятся в диапазоне $[1, 2\times 10^5]$, количество строк во входных данных не превышает $2\times 10^5$.