Рассмотрим $S$ — последовательность последовательностей целых чисел. Изначально $S_0 = (1)$. После этого мы строим $S_1, S_2, \dots, S_n$ следующим образом.
Пусть $|S_i|$ — длина последовательности $S_i$, а $s_{i,j}$ — $j$-й элемент $S_i$. Тогда $S_{i+1}$ будет иметь длину $|S_i| + 1$ и может быть получена из $S_i$ с помощью одной из следующих двух операций:
- Записать $1$ или заданное целое число $m$ в качестве элемента с номером $|S_i| + 1$ новой последовательности.
- Выбрать индекс $j$ ($1 \le j < |S_i|$), выбрать целое число $x$ такое, что $s_{i,j} < x < s_{i,j+1}$ или $s_{i,j} > x > s_{i,j+1}$, и поместить его между $s_{i,j}$ и $s_{i,j+1}$, сдвинув индексы правой части на $1$.
Даны $n$ и $m$. Найдите количество различных упорядоченных наборов последовательностей $S_1, \dots, S_n$. Два набора считаются различными, если хотя бы для одного $i$ от $1$ до $n$ последовательности $S_i$ в этих наборах различаются. Так как ответ может быть слишком большим, выведите его по модулю $998\,244\,353$.
Входные данные
Входные данные состоят из одной строки, содержащей два целых числа $n$ и $m$ ($1 \le n \le 3000$, $2 \le m \le 10^8$).
Выходные данные
Выведите количество различных последовательностей $S$ по модулю $998\,244\,353$.
Примеры
Входные данные 1
2 3
Выходные данные 1
5
Примечание
Вот возможные последовательности в первом примере:
- $S_1 = (1, 3)$ (первая операция), затем $S_2 = (1, 2, 3)$ (вторая операция);
- $S_1 = (1, 1)$ (первая операция), затем $S_2 = (1, 1, 3)$ (первая операция);
- $S_1 = (1, 1)$ (первая операция), затем $S_2 = (1, 1, 1)$ (первая операция);
- $S_1 = (1, 3)$ (первая операция), затем $S_2 = (1, 3, 3)$ (первая операция);
- $S_1 = (1, 3)$ (первая операция), затем $S_2 = (1, 3, 1)$ (первая операция).
Таким образом, ответ равен $5$.
Входные данные 2
1024 52689658
Выходные данные 2
654836147