FIBOSUM - Fibonacci Sum

The Fibonacci sequence is defined by the following relation:

  • F(0) = 0
  • F(1) = 1
  • F(N) = F(N - 1) + F(N - 2), N >= 2

Your task is very simple. Given two non-negative integers N and M, you have to calculate the sum (F(N) + F(N + 1) + ... + F(M)) mod 1000000007.

Input

The first line contains an integer T (the number of test cases). Then, T lines follow. Each test case consists of a single line with two non-negative integers N and M.

Output

For each test case you have to output a single line containing the answer for the task.

Example

Input:
3
0 3
3 5
10 19

Output:
4
10
10857

Constraints

  • T <= 1000
  • 0 <= N <= M <= 109

Added by:David Gómez
Date:2010-12-04
Time limit:1s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: ASM64
Resource:My Own

hide comments
2015-01-24 09:44:03 Anne
what do you guys mean by negative modulus?
2015-01-22 13:30:07 Raj Kumar Chauhan
why WA? :(
2015-01-11 11:51:35 sai krishna
learnt exponentiation
2014-12-24 23:41:57 Yashpal
Made Accepted in 0.00 :P
2014-10-30 08:31:59 Tahsin
Negative Modulus : caused me 6 WAs :(

Last edit: 2014-10-30 08:33:14
2014-10-23 09:09:43 mayank
Negative Modulus :'( .
2014-09-19 23:57:18 do_do
finally accepted using matrix expo. and modular arith. :)
2014-09-19 22:58:32 do_do
can someone please give me more test cases
2014-08-24 08:32:01 a7b
Can somebody tell me why I'm getting a wrong answer?
<snip>

Last edit: 2022-08-31 22:43:20
2014-07-03 14:22:05 sobriquet
After this try FIBTWIST.
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.