#CF474D. Flowers

Flowers

markdown

D. 花朵

项目 说明
时间限制 1.51.5
内存限制 256256 兆字节
输入 标准输入
输出 标准输出

我们见过小游戏“Marmot 为 Mole 的午餐准备的游戏”。现在是 Marmot 的晚餐时间,众所周知,Marmot 吃花朵。每顿晚餐他都会吃一些红色和白色的花朵。因此,一顿晚餐可以表示为一个由若干花朵组成的序列,其中一些是白色的,一些是红色的。

但是,为了让晚餐美味,有一条规则:Marmot 希望只以大小为 kk 的组的形式吃白色花朵。

现在 Marmot 想知道,在吃 aabb 朵花之间(包含两端)有多少种不同的方式。由于方式数量可能非常大,请输出结果对 10000000071000000007109+710^9 + 7)取模后的值。

输入

输入包含多个测试用例。

第一行包含两个整数 ttkk1t,k1051 \le t, k \le 10^5),其中 tt 表示测试用例的数量。

接下来的 tt 行,每行包含两个整数 aia_ibib_i1aibi1051 \le a_i \le b_i \le 10^5),描述第 ii 个测试用例。

输出

输出 tt 行到标准输出。第 ii 行应包含 Marmot 在晚餐时吃 aia_ibib_i 朵花之间的方式总数对 10000000071000000007109+710^9 + 7)取模后的结果。

样例

输入

3 2
1 3
2 3
4 4

输出

6
5
5

注释

  • 对于 K=2K = 2 且长度为 11,Marmot 可以吃 (R)。
  • 对于 K=2K = 2 且长度为 22,Marmot 可以吃 (RR) 和 (WW)。
  • 对于 K=2K = 2 且长度为 33,Marmot 可以吃 (RRR)、(RWW) 和 (WWR)。
  • 对于 K=2K = 2 且长度为 44,Marmot 可以吃例如 (WWWW) 或 (RWWR),但不能吃例如 (WWWR)。