codeforces#P1895F. Fancy Arrays

Fancy Arrays

Description

Let's call an array $a$ of $n$ non-negative integers fancy if the following conditions hold:

  • at least one from the numbers $x$, $x + 1$, ..., $x+k-1$ appears in the array;
  • consecutive elements of the array differ by at most $k$ (i.e. $|a_i-a_{i-1}| \le k$ for each $i \in [2, n]$).

You are given $n$, $x$ and $k$. Your task is to calculate the number of fancy arrays of length $n$. Since the answer can be large, print it modulo $10^9+7$.

The first line contains a single integer $t$ ($1 \le t \le 50$) — the number of test cases.

The only line of each test case contains three integers $n$, $x$ and $k$ ($1 \le n, k \le 10^9$; $0 \le x \le 40$).

For each test case, print a single integer — the number of fancy arrays of length $n$, taken modulo $10^9+7$.

Input

The first line contains a single integer $t$ ($1 \le t \le 50$) — the number of test cases.

The only line of each test case contains three integers $n$, $x$ and $k$ ($1 \le n, k \le 10^9$; $0 \le x \le 40$).

Output

For each test case, print a single integer — the number of fancy arrays of length $n$, taken modulo $10^9+7$.

4
3 0 1
1 4 25
4 7 2
1000000000 40 1000000000
9
25
582
514035484

Note

In the first test case of the example, the following arrays are fancy:

  • $[0, 0, 0]$;
  • $[0, 0, 1]$;
  • $[0, 1, 0]$;
  • $[0, 1, 1]$;
  • $[0, 1, 2]$;
  • $[1, 0, 0]$;
  • $[1, 0, 1]$;
  • $[1, 1, 0]$;
  • $[2, 1, 0]$.