У вас есть строка $$$s$$$ длины $$$n$$$, состоящая только из символов $$$\texttt{0}$$$, $$$\texttt{1}$$$ и $$$\texttt{?}$$$. Другими словами, $$$s$$$ — это незаполненная бинарная строка. Вы выполните следующие операции по порядку:
Найдите, сколько различных бинарных строк можно получить в результате выполнения этих операций. Поскольку это число может быть очень большим, найдите его по модулю $$$998\,244\,353$$$.
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 100$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Первая строка каждого набора входных данных содержит целое число $$$n$$$ ($$$1 \le n \le 3000$$$) — длину строки.
Вторая строка каждого набора входных данных содержит незаполненную бинарную строку $$$s$$$.
Гарантируется, что сумма значений $$$n$$$ по всем наборам входных данных не превосходит $$$3000$$$.
Для каждого набора входных данных выведите количество бинарных строк, которые можно получить, по модулю $$$998\,244\,353$$$.
71?5?????5?1001810010001700??10?7?1?0?1?160??000?00??1?1?0
363141871955399
В первых двух наборах входных данных можно получить любую бинарную строку, длина которой не превосходит $$$n$$$.
В третьем наборе входных данных можно получить следующие строки: $$$\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}$$$, где $$$\epsilon$$$ обозначает пустую строку.
Например, получить строку $$$\texttt{1}$$$ можно следующим образом:
| Название |
|---|


