#CF2122G. 树停车

树停车

G. 树停车
时间限制:2 秒
内存限制:256 兆字节

考虑以下问题陈述:

  • 给定一棵以 11 为根、有 nn 个顶点的树。对于每个 1in1 \le i \le n,一辆车将在时间 lil_i 进入根节点。然后它会瞬间沿着唯一简单路径从根节点行驶到顶点 ii,并停在那里。它将在时间 rir_i 沿同一条路径(相反方向)离开。
  • 当一辆车停在一个顶点时,它会阻止其他车辆通过该顶点。当且仅当所有车辆都能在它们期望的时间进入和离开树时,这棵树才被称为有效

计算满足以下条件的序列对 (l,r)(l, r) 的数量:li<ril_i < r_i,它们的拼接是 12n1 \dots 2n 的一个排列,且该树是有效的。

对于所有具有 nn 个顶点和 kk 个叶子的带标号树 ^*,计算上述答案的总和。根节点不算作叶子。由于答案可能很大,请对 998244353998244353 取模。

^* 两棵带标号树被认为是不同的,当且仅当它们的边集不同。


输入
每个测试包含多个测试用例。第一行包含测试用例数 tt1t1041 \le t \le 10^4)。
每个测试用例的描述如下:
唯一一行包含两个整数 n,kn, k1k<n21051 \le k < n \le 2 \cdot 10^5)—— 树的顶点数和叶子数。

保证所有测试用例的 nn 之和不超过 21052 \cdot 10^5


输出
对于每个测试用例,输出一个整数 —— 答案对 998244353998244353 取模。


样例
输入

3
2 1
8 3
65 43

输出

3
899171636
38330886

说明
在第一个测试用例中,只有一棵树满足约束条件。正确的序列对是:

$$(l,r) = ([1,3],[2,4]), \quad ([3,1],[4,2]), \quad ([2,1],[3,4]). $$