Poor Akagi

Time Limit: 15000ms
Memory Limit: 32768KB
This problem will be judged on HDU. Original ID: 4959
64-bit integer IO format: %I64d      Java class name: Main

Description

Akagi is not only good at basketball but also good at math. Recently, he got a sequence Ln from his teacher. Ln is defined as follow:
$$\Large L(n)=\begin{cases}
2 & \text{ if } n=0 \\
1 & \text{ if } n=1 \\
L(n-1)+L(n-2) & \text{ if } n>1
\end{cases}$$
And Akagi’s teacher cherishes Agaki’s talent in mathematic. So he wants Agaki to spend more time studying math rather than playing basketball. So he decided to ask Agaki to solve a problem about Ln and promised that as soon as he solves this problem, he can go to play basketball. And this problem is:
Given N and K, you need to find \(\Large\sum\limits_{0}^{N}L_i^K\)

And Agaki needs your help.

Input

This problem contains multiple tests.
In the first line there’s one number T (1 ≤ T ≤ 20) which tells the total number of test cases. For each test case, there an integer N (0 ≤ N ≤ 10^18) and an integer K (1 ≤ K ≤ 100000) in a line.

Output

For each test case, you need to output the answer mod 1000000007 in a line.

Sample Input

3
3 1
2 2
4 3

Sample Output

10
14
443

Source

Language: 
Theme: 
Share Code? 

Powered by NB231 | Current Style: .