Nici un om nu asterne in scris ceea ce are intentia sa spuna cu adevarat - sigma sigma boi, asta spune
Fie un sir de numere cuprinse in intervalul . Spunem ca un interval din vector este bun daca indeplineste urmatoarele conditii:
- pentru oricare , exista un intre si () astfel incat .
= cel mai mare divizor comun al numerelor si .
Cerință
Se dau operatii de genul:
- afla cate intervale bune se afla in .
Voi trebuie sa raspundeti la toate intrebarile de tipul . Operatiile de tipul sunt permanente.
Date de intrare
Pe prima linie se afla doua numere naturale, si . Pe urmatoarea linie se afla vectorul , urmat de linii, reprezentand operatiile date.
Date de ieșire
Pe prima linie se va afisa , numarul de intervale bune prezente in vectorul dat.
Ulterior se vor afisa, pe cate o linie separata, raspunsurile la intrebarile date.
Restricții și precizări
- ;
- ;
- Se garanteaza ca ''-ul din cadrul operatiilor nu depaseste .
# Score Constraints 1 5 2 12 3 23 4 20 5 12 6 28 Fara restrictii
Exemplul 1
stdin
6 0
3 1 1 1 2 2
stdout
2
Explicație
Doar intervalele si sunt bune.
Exemplul 2
stdin
10 8
1 1 1 1 1 1 1 1 1 1
2 4 9
2 10 10
1 4 1
1 6 180
1 7 180
1 8 157
2 1 6
2 4 9
stdout
36
10
0
6
2