Rozważmy $S$, ciąg ciągów liczb całkowitych. Początkowo $S_0 = (1)$. Następnie konstruujemy $S_1, S_2, \dots, S_n$ w następujący sposób.
Niech $|S_i|$ oznacza długość ciągu $S_i$, a $s_{i,j}$ będzie $j$-tym elementem ciągu $S_i$. Wtedy $S_{i+1}$ będzie miało długość $|S_i| + 1$ i można je otrzymać z $S_i$ za pomocą jednej z dwóch poniższych operacji:
- Dopisanie $1$ lub podanej liczby całkowitej $m$ jako elementu o numerze $|S_i| + 1$ nowego ciągu.
- Wybór indeksu $j$ ($1 \le j < |S_i|$), wybór liczby całkowitej $x$ takiej, że $s_{i,j} < x < s_{i,j+1}$ lub $s_{i,j} > x > s_{i,j+1}$, i umieszczenie jej pomiędzy $s_{i,j}$ oraz $s_{i,j+1}$, przesuwając indeksy prawej części o $1$.
Mając dane $n$ oraz $m$, znajdź liczbę różnych uporządkowanych zbiorów ciągów $S_1 \dots S_n$. Dwa zbiory uważa się za różne, jeśli dla co najmniej jednego $i$ z zakresu od $1$ do $n$, ciągi $S_i$ w tych zbiorach różnią się. Ponieważ wynik może być bardzo duży, wypisz go modulo $998\,244\,353$.
Wejście
Wejście składa się z jednej linii zawierającej dwie liczby całkowite $n$ oraz $m$ ($1 \le n \le 3000$, $2 \le m \le 10^8$).
Wyjście
Wypisz liczbę różnych ciągów $S$ modulo $998\,244\,353$.
Przykład
Wejście 1
2 3
Wyjście 1
5
Wejście 2
1024 52689658
Wyjście 2
654836147
Uwagi
Oto możliwe ciągi w pierwszym przykładzie:
- $S_1 = (1, 3)$ (pierwsza operacja), następnie $S_2 = (1, 2, 3)$ (druga operacja);
- $S_1 = (1, 1)$ (pierwsza operacja), następnie $S_2 = (1, 1, 3)$ (pierwsza operacja);
- $S_1 = (1, 1)$ (pierwsza operacja), następnie $S_2 = (1, 1, 1)$ (pierwsza operacja);
- $S_1 = (1, 3)$ (pierwsza operacja), następnie $S_2 = (1, 3, 3)$ (pierwsza operacja);
- $S_1 = (1, 3)$ (pierwsza operacja), następnie $S_2 = (1, 3, 1)$ (pierwsza operacja).
Zatem odpowiedzią jest $5$.