You find yourself with a string $$$s$$$ of length $$$n$$$ consisting of only the characters $$$\texttt{0}$$$, $$$\texttt{1}$$$ and $$$\texttt{?}$$$. In other words, $$$s$$$ is an incomplete binary string. You will do the following operations in order:
Find how many different binary strings can be obtained after performing the operations. As the number could be humungous, find it modulo $$$998\,244\,353$$$.
Each test contains multiple test cases. The first line contains the number of test cases $$$t$$$ ($$$1 \le t \le 100$$$). The description of the test cases follows.
The first line of each testcase contains an integer $$$n$$$ ($$$1 \le n \le 3000$$$) — the length of the string.
The second line of each test case contains the incomplete binary string $$$s$$$.
It is guaranteed that the sum of $$$n$$$ over all test cases does not exceed $$$3000$$$.
For each testcase, output the number of binary strings that can be obtained, modulo $$$998\,244\,353$$$.
71?5?????5?1001810010001700??10?7?1?0?1?160??000?00??1?1?0
363141871955399
In the first two testcases, any binary string of length no longer than $$$n$$$ can be made.
In the third testcase, the following strings can be made: $$$\epsilon, \mathtt{0}, \mathtt{1}, \mathtt{01}, \mathtt{11}, \mathtt{001}, \mathtt{011}, \mathtt{101}, \mathtt{111}, \mathtt{0101}, \mathtt{1001}, \mathtt{1101}, \mathtt{01001}, \mathtt{11001}$$$, where $$$\epsilon$$$ represents the empty string.
An example of how $$$\texttt{1}$$$ can be made is as follows:
| Name |
|---|


