二小姐的区间查询
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

二小姐有一个长为  的数组 ,她会命令小红执行如下两种指令:
\hspace{23pt} \bullet1 \ x \ y:将数组的第  位修改为
\hspace{23pt} \bullet:查询在区间  内任取两个元素,其乘积是  倍数的方案数。
请你帮帮小红。

输入描述:

第一行输入两个整数 
第二行输入  个整数
之后的  行,每行输入一条指令 1 \ x \ y\left(1\leqq x\leqq n,1\leqq y \leqq 10^9\right) 或 2 \ l\ r\left( 1\leqq l < r \leqq n \right)
特殊的,保证至少会有一次查询指令。

输出描述:

对于每次查询指令,新起一行输出一个整数,代表查询结果。
示例1

输入

复制
5 3
1 1 1 1 495
2 1 5
1 1 495
2 1 5

输出

复制
4
7