编程题
### 问题描述
话说三国时期,曹操打算攻打蜀汉,需要派 $n$ 个将军各自带队出发。
为了避免浪费粮食,曹操想精确计算每个队伍的人数,于是他找来谋士刘晔商量。
刘晔说:“主公,咱可以简单点,用‘士气’来代表队伍人数,‘士气’越高,就表示人数越多,战斗力越强!”
曹操一听,乐了:“妙啊!不过这‘士气’怎么定才合适呢?”
刘晔说:“这‘士气’啊,得满足两个条件:
* 每个队伍的‘士气’都是不超过 $m$ 的正整数;
* 所有队伍的‘士气’的最小公倍数必须正好是 $m$,这样才能保证各部队协调作战,发挥最大战斗力! ”
曹操听完,摸着胡子说:“好!那你说说,满足条件的‘士气’分配方案到底有多少种?”
刘晔赶紧说:“这…这得找专业的来算啊…”
于是,曹操转头问你:“你知道满足条件的方案数是多少吗?对了,我不喜欢很大的数字,所以你算出来的结果别忘了对 $998244353$ 取个余数。”
请你回答曹操的问题。
### 输入格式
输入一行包含两个整数 $n,m$($2\leq n,m \leq 10^9$),分别表示将军(队伍)的数量、单个队伍“士气”的最大值和所有队伍“士气”的最小公倍数。
### 输出格式
输出一个整数,表示满足条件的士气分配方案的数量,结果对 $998244353$ 取余。
### 样例输入
```text
2 8
```
### 样例输出
```text
7
```
### 样例说明
可能的方案有:
$$
[1, 8]\\\\
[8, 1]\\\\
[2, 8]\\\\
[8, 2]\\\\
[4, 8]\\\\
[8, 4]\\\\
[8,8]
$$
共计 $7$ 种。