Lately, Slavko's been studying sequences of natural numbers. He finds a sequence interesting if the greatest common divisor of all the elements from the sequence is greater than 1.
Yesterday, he found a sequence consisting of natural numbers in his garage. Since he was really bored, he decided to keep himself occupied by asking simple queries. Each query can be one of the two types:
- Change the value at position in the sequence to .
- Determine the number of interesting contiguous subarrays contained in the interval
[L, R]
of the sequence.
Input Specification
The first line of input contains the numbers and , representing the number of elements in the sequence and the number of queries, respectively.
The following line contains natural numbers that represent the numbers in the initial sequence.
Each of the following lines contains a query of the following form:
- The first number in the line can be
1
or2
and represents the type of the query. - If the query is of type
1
, two numbers follow, and from the task. - If the query is of type
2
, two numbers follow, and that represent the left and right interval boundary.
Output Specification
For each query of type 2
, output the number of interesting contiguous subarrays from the task.
Sample Input 1
5 1
8 4 3 9 1
2 2 5
Sample Output 1
4
Sample Input 2
5 3
2 3 6 4 1
2 1 4
1 3 1
2 3 5
Sample Output 2
6
1
Sample Input 3
4 3
2 2 2 2
2 1 4
1 2 3
2 1 4
Sample Output 3
10
5
Comments