Рассмотрим строки, состоящие из скобок «(» и «)». Правильные скобочные последовательности — это строки, которые могут быть получены по следующим правилам:
- Пустая строка является правильной скобочной последовательностью.
- Если $A$ — правильная скобочная последовательность, то $(A)$ — правильная скобочная последовательность.
- Если $A$ и $B$ — правильные скобочные последовательности, то конкатенация $A$ и $B$ — правильная скобочная последовательность.
Даны $N$ коробок, пронумерованных $1, 2, \dots, N$, а также два целых числа $M$ и $K$. Ваша задача — положить ровно одну правильную скобочную последовательность в каждую из $N$ коробок так, чтобы выполнялись следующие условия:
- Общее количество открывающих скобок «(» во всех $N$ коробках равно $M$.
- Правильные скобочные последовательности длины $2 \cdot K$ не могут быть помещены в коробки.
Найдите количество различных способов сделать это. Два распределения считаются различными, если существует такой номер $i$, что в коробке $i$ в этих распределениях лежат разные правильные скобочные последовательности. Поскольку ответ может быть очень большим, выведите его по модулю $998\,244\,353$.
Входные данные
Входные данные содержат одну строку с тремя целыми числами $N$, $M$ и $K$ ($1 \le M, N \le 10^6$, $1 \le K \le M$).
Выходные данные
Выведите ответ по модулю $998\,244\,353$.
Примеры
Входные данные 1
2 2 1
Выходные данные 1
4
Примечание
Для первого примера условиям удовлетворяют следующие распределения:
- $(())$, пусто;
- $()()$, пусто;
- пусто, $(())$;
- пусто, $()()$.
Таким образом, ответ равен 4.
Входные данные 2
1 1 1
Выходные данные 2
0
Входные данные 3
24 120 30
Выходные данные 3
379268651