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 nonnegative 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 nonnegative 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 <= 10^{9}
hide comments
Babu:
20150726 21:37:47
where is the negative modulus coming .


Rahul Jain:
20150718 20:39:57
@xxbloodysantaxx, Your comment was very helpful to me. Thanks.


Ashish:
20150705 08:44:29
Oh never mind. I read it from Wikipedia anyway. Turns out :


Ashish:
20150704 19:21:52
What is the link to Rafael Perella's thread? I am getting TLE despite using a O( logn + (mn) ) algorithm. ( O(logn) to find f(n) and O(mn) to compute f(i) ( n<=i<=m) and sum, and take modulo. I am even taking modulo at the matrix multiplication step. But I am using a recursive function instead of a loop for the O(logn) part. Is that the reason? plz help..... 

14mandeep:
20150623 18:35:23
finally accepted


Master_Card:
20150623 11:19:51
my 150th :)


r0bo_dart:
20150622 18:13:46
My LOL moment.. loaded 2 times the old code while tweaking the new one. GOT WA 23 times i guess :P ... #BEWARE


eagle_19:
20150613 14:30:59
thanks @Arjun, I ignored the negative mod. Finally submitted. :') 

Arjun Verma:
20150612 15:13:51
1)mod operation on matrix multiplication .


eagle_19:
20150609 17:23:26
I am getting WA after submitting, but on ideone it's giving the desired output.

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