是时候进行一场饥饿游戏了!不过别担心,这只是蚂蚁之间的游戏。
在这场饥饿游戏开始时,有一根长度为 $N + 1$ 的木棍,上面有 $N$ 只蚂蚁。蚂蚁编号从 $1$ 到 $N$,第 $i$ 只蚂蚁的重量为 $i$,且位于距离木棍左端 $i$ 个单位的位置。注意,第 $N$ 只蚂蚁距离木棍左端 $N$ 个单位,距离木棍右端 $1$ 个单位。
游戏开始时,每只蚂蚁以相等的概率选择向左或向右,并开始向该方向移动。所有蚂蚁在整个游戏过程中始终保持相同的速度。每当蚂蚁到达木棍的任一端时,它会立即改变方向。
每当两只蚂蚁相遇时,它们会进行战斗,重量较重的一方获胜。(如果重量相等,则从左侧过来的一方获胜。)随后,获胜者吃掉失败者,这使得获胜者的重量永久增加失败者的重量。获胜者随后保持战斗前移动的方向继续前进。(整个过程瞬间完成。)
游戏持续进行,直到只剩下一只蚂蚁,这只蚂蚁就是获胜者!
由于 $N$ 只蚂蚁中的每一只都可以选择向左或向右开始移动,因此共有 $2^N$ 种可能的场景。在这些场景中,有多少种场景下第 $K$ 只蚂蚁会成为获胜者?请计算该值对 $1,000,000,007$ ($10^9 + 7$) 取模的结果。
输入格式
输入的第一行包含测试用例的数量 $T$。接下来有 $T$ 行。 每行包含两个整数 $N$ 和 $K$,分别表示游戏中的蚂蚁数量以及我们感兴趣的蚂蚁编号(从 $1$ 开始)。
输出格式
对于每个测试用例,输出一行 "Case #x: y",其中 $x$ 是测试用例编号(从 $1$ 开始),$y$ 是第 $K$ 只蚂蚁获胜的场景数量,结果对 $1,000,000,007$ ($10^9 + 7$) 取模。
数据范围
- $1 \le T \le 100$
- $1 \le K \le N$
- $2 \le N \le 10^6$
样例
输入 1
3 2 1 3 2 4 2
输出 1
Case #1: 0 Case #2: 4 Case #3: 4
说明
在 Case #1 中,有 $2$ 只蚂蚁。无论它们最初向哪个方向移动,它们都会相遇,且蚂蚁 #2 会吃掉蚂蚁 #1。因此蚂蚁 #1 不可能获胜。
在 Case #2 中,有 $3$ 只蚂蚁。在任何蚂蚁 #2 最初向左移动的场景中,它会首先遇到并吃掉蚂蚁 #1,使其重量增加到 $3$。然后它会遇到蚂蚁 #3;此时它的重量与蚂蚁 #3 相同,但由于蚂蚁 #2 是从左侧过来的,所以它会获胜。然而,在任何蚂蚁 #2 最初向右移动的场景中,它会首先遇到蚂蚁 #3 并被吃掉。由于共有 $8$ 种场景,且其中一半场景中蚂蚁 #2 最初向左移动,因此答案为 $4$。