Олимпиадный тренинг

Задача . E. Арена


На арене сражаются \(n\) героев. Изначально у \(i\)-го героя \(a_i\) единиц здоровья.

Бой на арене проходит в несколько раундов. В начале каждого раунда каждый еще живой герой наносит \(1\) урона всем остальным героям. Удары всех героев происходят одновременно. Герои, чье здоровье стало меньше \(1\) в конце раунда, считаются убитыми.

Если после некоторого раунда в живых остается ровно \(1\) герой, то он объявляется победителем. В противном случае победителя нет.

Ваша задача — посчитать количество способов выбрать начальное здоровье для каждого героя \(a_i\), где \(1 \le a_i \le x\), таким образом, чтобы не существовало победителя боя. Количество способов может быть очень большим, поэтому выведите его по модулю \(998244353\). Два способа считаются различными, если хотя бы у одного героя отличается количество здоровья. Например, способы \([1, 2, 1]\) и \([2, 1, 1]\) — разные.

Входные данные

Единственная строка содержит два целых числа \(n\) и \(x\) (\(2 \le n \le 500; 1 \le x \le 500\)).

Выходные данные

Выведите одно целое число — количество способов выбрать начальное здоровье для каждого героя \(a_i\), где \(1 \le a_i \le x\), таким образом, чтобы не существовало победителя боя, взятое по модулю \(998244353\).


Примеры
Входные данныеВыходные данные
1 2 5
5
2 3 3
15
3 5 4
1024
4 13 37
976890680

time 3000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя