Xét các xâu chỉ bao gồm các dấu ngoặc '(' và ')'. Các dãy ngoặc đúng là các xâu có thể thu được bằng các quy tắc sau:
- Xâu rỗng là một dãy ngoặc đúng.
- Nếu $A$ là một dãy ngoặc đúng, thì $(A)$ là một dãy ngoặc đúng.
- Nếu $A$ và $B$ là các dãy ngoặc đúng, thì phép nối $A$ và $B$ là một dãy ngoặc đúng.
Bạn được cho $N$ chiếc hộp được đánh số $1, 2, \dots, N$, cùng với hai số nguyên $M$ và $K$. Nhiệm vụ của bạn là đặt chính xác một dãy ngoặc đúng vào mỗi chiếc hộp trong $N$ chiếc hộp sao cho các điều kiện sau được thỏa mãn: Tổng số dấu ngoặc '(' trong tất cả $N$ chiếc hộp bằng $M$. Các dãy ngoặc đúng có độ dài $2 \cdot K$ không được phép đặt vào các hộp.
Hãy đếm số cách thực hiện khác nhau. Hai cách phân phối được coi là khác nhau nếu tồn tại một số $i$ sao cho hộp $i$ chứa các dãy ngoặc đúng khác nhau trong các cách phân phối đó. Vì kết quả có thể rất lớn, hãy in ra kết quả theo modulo $998\,244\,353$.
Dữ liệu vào
Dữ liệu vào gồm một dòng chứa ba số nguyên $N, M$ và $K$ ($1 \le M, N \le 10^6$, $1 \le K \le M$).
Dữ liệu ra
In ra kết quả theo modulo $998\,244\,353$.
Ví dụ
Dữ liệu vào 1
2 2 1
Dữ liệu ra 1
4
Dữ liệu vào 2
1 1 1
Dữ liệu ra 2
0
Dữ liệu vào 3
24 120 30
Dữ liệu ra 3
379268651
Ghi chú
Đối với ví dụ đầu tiên, các cách phân phối sau đây thỏa mãn các điều kiện: $(())$, rỗng; $()()$, rỗng; rỗng, $(())$; rỗng, $()()$.
Vì vậy, kết quả là 4.