J. 草莓牛奶
time limit per test
5 seconds
memory limit per test
1024 megabytes
input
standard input
output
standard output

Arona 和 Plana 是好朋友,遇到什么事情都可以通过友好地协商解决。

一天上午,Arona 打开冰箱,发现冰箱里竟然只剩下一个草莓牛奶了!她认为 Plana 会抢她的牛奶,于是向 Plana 发起了决斗!决斗内容如下:

Arona 给定一个正整数 $$$n$$$,然后随机选取一个 $$$1, 2, \cdots, n$$$ 的排列 $$$a$$$。令 $$$L$$$ 表示满足 $$$\max\limits_{j=1}^i a_j = a_i$$$ 的正整数 $$$i$$$ 的数量,$$$R$$$ 表示满足 $$$\min\limits_{j=1}^i a_j = a_i$$$ 的正整数 $$$i$$$ 的数量。如果 $$$L \ge R$$$,则 Arona 赢,否则 Plana 赢。

Arona 很自信,觉得她自己能轻松获得胜利,为了防止她胜利的时候 Plana 抱怨不公平,她又选了一个正整数 $$$k \le n$$$,并且将自己的胜利条件改为了 $$$L \ge R + k$$$。

虽然 Plana 一点也不在乎草莓牛奶,但她知道 Arona 能赢的概率不太大。Plana 现在想要知道这个概率具体是多少。屏幕前的你能帮她求出来这个具体值吗?

假设 Arona 能胜利的概率为 $$$p$$$,你只需要求出 $$$p \times n!$$$ 对 $$$998244353$$$ 取模后的结果即可。

Input

此题包含多组测试数据。

第一行输入一个正整数 $$$T$$$ $$$(1 \le T \le 10^3)$$$,表示测试数据组数。

接下来 $$$T$$$ 行,每行输入两个整数 $$$n, k$$$ $$$(1 \le k \le n \le 10^6)$$$,含义同题目描述。

保证所有测试数据中 $$$n$$$ 的总和不超过 $$$10^6$$$。

Output

对于每组测试数据,输出一行一个整数,表示所求的答案对 $$$998244353$$$ 取模后的结果。

Examples
Input
2
3 1
3 2
Output
2
1
Input
10
5 3
97 31
2468 1357
9876 1
9876 1234
9876 6789
234567 1
234567 234555
234567 123456
234567 12345
Output
7
878338345
199045303
782408107
474021604
653690172
358465928
130271340
136329270
679313091
Note

对于第一组数据,$$$n = 3$$$ 时共有 $$$6$$$ 种排列:

  • 数列 $$$[1, 2, 3]$$$:$$$L = 3, R = 1$$$。
  • 数列 $$$[1, 3, 2]$$$:$$$L = 2, R = 1$$$。
  • 数列 $$$[2, 1, 3]$$$:$$$L = 2, R = 2$$$。
  • 数列 $$$[2, 3, 1]$$$:$$$L = 2, R = 2$$$。
  • 数列 $$$[3, 1, 2]$$$:$$$L = 1, R = 2$$$。
  • 数列 $$$[3, 2, 1]$$$:$$$L = 1, R = 3$$$。

因此,当 $$$n = 3, k = 1$$$ 时,有 $$$[1, 3, 2]$$$ 和 $$$[1, 2, 3]$$$ 满足 $$$L \ge R + 1$$$ 的要求;而当 $$$n = 3, k = 2$$$ 时,只有 $$$[1, 2, 3]$$$ 满足 $$$L \ge R + 2$$$ 的要求。