计数题

题目背景

[Easy Counting Problem](https://atcoder.jp/contests/agc022/tasks/agc022_e) > 身のうさを思ひしらでややみなまし そむくならひのなき世なりせば

题目描述

给定长度为 $N$ 的 $01$ 串 $S$,你可以做若干个操作,形如将长度为 $3$ 的子串变成它们的中位数(注意是变成一个数字),问可以得到多少个不同的串。 答案对 $998244353$ 取模。

输入输出格式

输入格式


本题有多组数据。第一行输入数据组数 $T$。 对于每组数据,仅输入一个字符串 $S$ 表示给定的 $01$ 串。

输出格式


对每组数据输出一行一个整数,表示答案对 $998244353$ 取模的结果。

输入输出样例

输入样例 #1

4
1001
111000
101010
111000101010

输出样例 #1

3
7
3
25

说明

**【样例解释】** 可以证明,$1001$ 仅能通过操作获得串 $10,01,1001$ ,因此样例第一组数据的答案为 $3$。 --- **【数据范围】** 对于 $100 \%$ 的数据,满足 $1\le N \le 5\times {10}^6$,$S_i\in\{0,1\}$,$1 \le T \le 5$。 | 子任务 | $N \le$ | 特殊性质 | 分数 | | - | - | - | - | | 1 | $10$ | | $5$ | | 2 | $50$ | | $10$ | | 3 | $300$ | | $10$ | | 4 | $2000$ | | $15$ | | 5 | | A | $5$ | | 6 | | B | $5$ | | 7 | ${10}^5$ | | $20$ | | 8 | | | $30$ | 特殊性质 A:保证 $S_i=0$。 特殊性质 B:保证 $S_{2k}=0$、$S_{2k+1}=1$。 **字符串下标的编号从 $1$ 开始。**