#688. L3-2 GCD Ultra

L3-2 GCD Ultra

当前没有测试数据。

Description

给定一个长度为 nn 的数组 a=[a1,a2,,an]a=[a_1,a_2,\cdots ,a_n]

对数组进行多次查询,每次查询数组的一个连续区间 [l,r][l,r],需要计算集合 $S=\bigcup_{i=l}^{r}{\left\{\text{gcd}_{j=i}^r{a_j}\right\}}$ 的大小。

注意:gcdi=pqai\text{gcd}_{i=p}^{q}{a_i} 表示数组 aaap,ap+1,,aqa_p,a_{p+1},\cdots ,a_{q} 的最大公因数,i=pqsi\bigcup_{i=p}^{q}{s_i} 表示集合 sp,sp+1,sqs_p,s_{p+1},\cdots s_{q} 的并集。

Format

Input

第一行两个整数 n,m (1n,m6×105)n,m\ (1\leq n,m\leq 6\times 10^5) 表示序列大小和询问次数。

第二行 nn 个整数表示 ai (1ai231)a_i\ (1\leq a_i\leq 2^{31})

接下来 mm 行,每行两个正整数 l,r (1lrn)l,r\ (1\leq l\leq r\leq n) 表示询问。

Output

mm 行,每行一个正整数表示答案。

Samples

6 3
1 2 3 4 5 6
1 3
2 4
1 6
2
2
2