La o companie de făurit cărți de joc lucrează angajați. Pentru simplitate, îi vom numerota (angajații )
Baronul Job al III-lea, fiind proprietarul companiei, dorește ca compania să aibă o structură bine-definită. Deoarece această companie are o grămadă de pachete de toate felurile, acesta va folosi unul dintre ele pentru a stabili structura companiei.
Pachetul are exact cărți, numerotate de la la . Fiecare angajat va primi câte o carte diferită dintre cele . Deoarece Baronul este foarte parțial (adică nu e imparțial), el va alege ce carte va primi fiecare angajat (angajatul va primi cartea cu numărul ).
Baronul preferă mereu angajații cu cărți care au numere mai mari. Pentru el, autoritatea este direct proporțională cu numărul de pe carte. Astfel, dacă privim întreaga companie, persoana care deține cartea cu număr maxim va deveni Directorul Suprem al companiei.
Dar Baronul nu se oprește aici. El nu stabilește structura doar global, ci și local, pe departamente. Un departament reprezintă un grup de angajați consecutivi, de la la . În acel departament, regulile sunt simple:
- Șeful acelui departament este persoana cu numărul maxim al cărții. Această persoană este șefa tuturor angajaților din acel departament.
- Angajații aflați în stânga acestei persoane (de la la poziția ei minus 1) reprezintă un sub-departament (dacă aceștia există).
- Angajații aflați în dreapta acestei persoane (de la poziția ei plus 1 la ) reprezintă un sub-departament (dacă aceștia există).
- Fiecare sub-departament aplică aceleași reguli.
Observăm că un angajat poate avea mai mulți șefi.
Baronul are sponsori pentru companie, iar fiecare sponsor are o întrebare pentru el. Din departamentul cu angajații de la la , ne interesează fiecare sub-departament al său.
Pentru fiecare sub-departament de la la , acesta trebuie să construiască structura ierarhică la fel ca mai sus, și să calculeze influența a fiecărui angajat, adică numărul de angajați care îl au pe acesta ca șef. Sponsorii sunt interesați de suma influențelor angajaților din acest sub-departament. Mai formal, Baronul trebuie să calculeze valoarea
Însă sponsorii sunt mai curioși de atât. Aceștia vor să afle suma acestor valori. Mai formal, Baronul trebuie să calculeze valoarea
Deoarece aceste valori pot fi foarte mari, sponsorii sunt doar interesați de restul lor modulo .
Însă, Baronul este foarte ocupat cu căutatul monedelor căzute pe podea, așa că cere ajutorul vostru.
Date de intrare
Prima linie va conține două numere naturale și . A doua linie conține șirul . Următoarele linii conțin câte două numere naturale și .
Date de ieșire
Pentru fiecare întrebare se afișează pe o linie valoarea corespunzătoare a , modulo .
Restricții și precizări
- pentru toate întrebările.
- Se garantează că șirul este o permutare a mulțimii .
- Un angajat nu este propriul lui șef.
- Notăm cu numărul de indici astfel încât și
- Notăm cu numărul de indici astfel încât pentru orice ,
| Subtask | Restricții | Punctaj |
|---|---|---|
| 0 | Exemplul | |
| 1 | ||
| 2 | ||
| 3 | ||
| 4 | ||
| 5 | ||
| 6 | ||
| 7 | ||
| 8 | pentru toate întrebările | |
| 9 | ||
| 10 | Fără alte restricții |
Exemplu
stdin
3 2
2 1 3
1 2
1 3
stdout
1
5
Explicație
Pentru primul sponsor, avem
Pentru al doilea sponsor, avem