Gửi bài giải
Điểm:
0,10 (OI)
Giới hạn thời gian:
2.0s
Giới hạn bộ nhớ:
1G
Input:
stdin
Output:
stdout
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C++, Pascal, Python
Kazuma có hai số nguyên ~N~ và ~M~. Megumin muốn đếm số lượng dãy ~A~ khác nhau có ~N~ phần tử thỏa mãn:
- ~A_i \in \mathbb{N}, \forall i = 1, 2, \ldots , N~,
- ~\sum_{i = 1}^N A_i = M~,
- ~A_1 \oplus A_2 \oplus \ldots \oplus A_N = 0~. Ở đây ~\oplus~ là phép XOR nhị phân.
Hai dãy ~X, Y~ độ dài ~N~ được gọi là khác nhau nếu tồn tại vị trí ~i~ ~(1 \le i \le N)~ mà ~X_i \neq Y_i~. Dù là pháp sư có sức mạnh tối thượng, nhưng vì chỉ biết một loại phép thuật nên bài toán này vẫn rất khó với Megumin. Bạn hãy giúp Megumin nhé!
Input
- Gồm một dòng duy nhất chứa hai số ~N, M~ ~(1 \le N, M \le 10^5)~.
Output
- In ra duy nhất một số nguyên là số lượng dãy ~A~ thỏa mãn. Vì đáp án có thể rất lớn nên hãy in ra đáp án modulo ~998244353~.
Scoring
- Subtask 1 ~(5p)~: ~N = 2~
- Subtask 2 ~(21p)~: ~N, M \le 100~
- Subtask 3 ~(28p)~: ~M \le 20~
- Subtask 4 ~(30p)~: ~N, M \le 5000~
- Subtask 5 ~(16p)~: Không có giới hạn gì thêm.
Sample Input
3 6
Sample Output
9
Notes
Có 9 dãy ~A~ thỏa mãn:
- ~[1, 2, 3]~, ~[1, 3, 2]~, ~[2, 1, 3]~, ~[2, 3, 1]~, ~[3, 1, 2]~, ~[3, 2, 1]~,
- ~[0, 3, 3]~, ~[3, 0, 3]~, ~[3, 3, 0]~.