4333: 取数

时间限制:100 ms 内存限制:128 MB
上传者:
提交:0 通过:0

题目描述

有一个集合 $S$ ,其中元素包含 $1$ 到 $n$ 中的所有整数,请问在 $S$ 的子集中(包括空集和自己本身),有多少个子集的其中元素之和可以被 $m$ 整除?
注意:
1.空集中所有元素的和为 $0$ 。
2.本题时间限制为100ms。
样例解释
当 $n=2$ 时, $S=\{ 1,2 \}$ ,$S$ 的子集有 $\emptyset ,\{ 1 \}, \{ 2 \} , \{ 1,2 \}$,和分别为$0,1,2,3$,满足整除 $m=2$ 的集合有 $2$ 个,分别为 $\emptyset ,\{ 2 \}$。

输入格式

输入两个正整数 $n$ 和 $m$ 。
其中 $1\le n \le 10^{18}$,$1\le m\le n$。
保证 $ n $ 是 $m$ 的倍数,且 $m$ 为质数。 

输出格式

输出一个数字,代表符合要求的子集的个数,由于答案可能特别大,请输出答案对 $998244353$ 取模的结果。

输入样例 复制

2 2

输出样例 复制

2

数据范围与提示