Banda lu' Bahoi

Time limit: 2s Memory limit: 64MB Input: Output:

Pe măsură ce se apropie Crăciunul, lucrurile devin foarte aglomerate la Polul Nord. Elfii, forța principală de muncă a Moșului, dispun de o bandă rulantă de lungime infinită, împărțită în chenare. Inițial, pe bandă se află doar un cadou, situat pe poziția 11. Pentru a determina numărul de cadouri care vor fi în chenarul kk, Bahoi șeful executiv al Moșului va deplasa banda cu o poziție la dreapta, adunând numărul de cadouri de pe poziția k1k-1 (după deplasare) la numărul de cadouri de pe poziția k1k-1 (înainte de deplasare).

Cu alte cuvinte, dacă qkq_k este numărul de cadouri din chenarul kk, atunci qk=qk1+qk2q_k = q_{k-1} + q_{k-2}, pentru oricare k2k \geq 2.

Cerință

Din cauza haosului de la Polul Nord, șeful executiv Bahoi dorește să verifice dacă a calculat corect numărul de cadouri din fiecare chenar. Astfel, el își pune QQ întrebări, fiecare întrebare fiind de forma: care este numărul total de cadouri din chenarele cuprinse între ll și rr? Datorită programului său încărcat, el consideră suficient să afle restul numărului total de cadouri la împărțirea cu MM.

Date de intrare

Pe prima linie se găsește numărul QQ și pe următoarele QQ linii câte 3 numere, reprezentând ll, rr și MM.

Date de ieșire

Pe linia ii a output-ului se va găsi răspunsul la întrebarea cu numărul ii.

Restricții și precizări

  • Vom considera că pe poziția 00 nu se află niciun cadou.
  • 1Q200 0001 \leq Q \leq 200 \ 000
  • 0lr10180 \leq l \leq r \leq 10^{18}
  • 1M21091 \leq M \leq 2 \cdot 10^9
  • Pentru 4040 de puncte, r200 000r \leq 200 \ 000 și M=109+7M = 10^9 + 7.

Exemplu

stdin

3
0 5 1000
1 3 1000000007
8 8 18

stdout

12
4
3

Log in or sign up to be able to send submissions!