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

Задача . E. 2-раскраска


Дана сетка с \(n\) строками и \(m\) столбцами. Каждая ячейка сетки должна быть окрашена в синий или желтый цвет.

Раскраска сетки называется глупой, если в каждой строке есть ровно один отрезок синих ячеек, а в каждом столбце — ровно один отрезок желтых ячеек.

Другими словами, каждая строка должна иметь хотя бы одну синюю ячейку, и все синие ячейки в строке должны быть последовательными. Точно так же каждый столбец должен иметь хотя бы одну желтую ячейку, а все желтые ячейки в столбце должны быть последовательными.

Пример глупой раскраски.
Примеры умных раскрасок. В первой раскраске отсутствует синяя ячейка во втором ряду, а во второй раскраске есть два желтых отрезка во втором столбце.

Сколько всего существует глупых раскрасок сетки? Две раскраски считаются различными, если есть какая-то ячейка, которая раскрашена в них в разные цвета.

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

Единственная строка содержит два целых числа \(n\), \(m\) (\(1\le n, m\le 2021\)).

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

Выведите единственное целое число — количество глупых раскрасок по модулю \(998244353\).

Примечание

Для первого примера единственные две глупые раскраски \(2\times 2\) изображены ниже.


Примеры
Входные данныеВыходные данные
1 2 2
2
2 4 3
294
3 2020 2021
50657649

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

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