Назовем блоком в бинарной строке (строке, состоящей из символов 0 и/или 1) ее непрерывную подстроку из символов одного и того же типа, которую нельзя продлить ни влево, ни вправо. Например, в строке 110001111 три блока:
Подстрока с $$$7$$$-го символа по $$$9$$$-й символ 111 не является блоком, потому что ее можно продлить влево. Подстрока с $$$1$$$-го символа по $$$5$$$-й символ 11000 не является блоком, потому что она содержит символы разных типов.
Назовем строку красивой, если из нее можно удалить ровно один блок так, чтобы получилась строка из нечетного количества блоков. Например:
Дано число $$$n$$$ и $$$m$$$ ограничений, $$$i$$$-е из которых описывается парой целых чисел $$$l_i, r_i$$$. Обозначим за $$$s[l:r]$$$ подстроку строки $$$s$$$ с символа $$$l$$$ по символ $$$r$$$ включительно, то есть $$$s[l:r] = s_l s_{l+1} \dots s_r$$$. Ваша задача — посчитать количество бинарных строк $$$s$$$ длины $$$n$$$, удовлетворяющих следующему условию:
В первой строке задано одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных.
В первой строке каждого набора входных данных заданы два целых числа $$$n$$$ и $$$m$$$ ($$$2 \le n \le 3 \cdot 10^5$$$; $$$1 \le m \le 3 \cdot 10^5$$$) — требуемая длина строки и количество ограничений, соответственно.
Далее следуют $$$m$$$ строк, $$$i$$$-я из которых содержит два целых числа $$$l_i, r_i$$$ ($$$1 \le l_i \lt r_i \le n$$$) — описание $$$i$$$-го ограничения.
Дополнительные ограничения на входные данные:
На каждый набор входных данных выведите одно целое число — количество строк, удовлетворяющих всем ограничениям. Так как оно может быть огромным, выведите его по модулю $$$998244353$$$.
34 31 22 33 44 21 23 4200 113 37
24570529459
В первом примере из условия подходят следующие строки: 1010, 0101. Для каждой из этих строк и $$$s[1:2]$$$, и $$$s[2:3]$$$, и $$$s[3:4]$$$ являются красивыми.