编程题
### 问题描述
闷油瓶最近又双叒叕失忆了!为了帮助闷油瓶恢复记忆,吴邪决定带他去寻找记忆碎片。
他们来到一座古墓,根据线索,想要打开通往下一层的墓门,需要破解一个机关。机关上刻着 $n$ 个数字,分别是 $1,2,3,\dots, n$。
吴邪刚想上前查看,突然机关启动,这 $n$ 个数字被复制了 $m$ 次,变成了一个长度为 $n \times m$ 的数字阵列:
$$
\underbrace{(1,2,\dots, n), (1,2,\dots , n),\dots ,(1,2\dots ,n)}_{m 个 (1,2,\dots, n)}
$$
机关旁边还写着一行小字:想要打开墓门,必须从这个数字阵列中选择 $n$ 个数字,使得这 $n$ 个数字按照在数字阵列中的先后顺序排列后,依次为 $1, 2, 3, \dots, n$。
“这…这该怎么选啊?”吴邪挠了挠头,向你投来了求助的目光。
现在,请你帮吴邪算出,一共有多少种不同的选取方法吗?由于答案可能很大,你只需要输出方案数对 $998244353$ 取模的结果即可。
### 输入格式
第一行包含一个整数 $t$ $(1 \leq t \leq 10^5)$,表示测试用例的数量。
接下来的 $t$ 行,每行包含两个整数 $n$ 和 $m$ $(2 \leq n, m \leq 10^5)$,表示数字的数量和复制的次数。
### 输出格式
对于每个测试用例,输出一个整数,表示从数字阵列中选择 $n$ 个数字,使得它们依次为 $1, 2, 3, \ldots, n$ 的不同选取方法的总数对 $998244353$ 取模后的结果。
### 样例输入
```text
1
2 2
```
### 样例输出
```text
3
```
### 样例说明
在给定样例中,数字阵列为:
$$
1,2,1,2
$$
可选取的方案数共有 $3$ 种,分别为:
$$
\textcolor{red}{1},\textcolor{red}{2},1,2
$$
$$
\textcolor{red}{1},2,1,\textcolor{red}{2}
$$
$$
1,2,\textcolor{red}{1},\textcolor{red}{2}
$$