Codeforces Round 538 (Div. 2)
F
Please, another Queries on Array?
Codeforces
2400
原题
← E→
翻译中…

You are given an array $a_1, a_2, \ldots, a_n$.

翻译中…

You need to perform $q$ queries of the following two types:

翻译中…
  1. "MULTIPLY l r x" — for every $i$ ($l \le i \le r$) multiply $a_i$ by $x$.
  2. "TOTIENT l r" — print $\varphi(\prod \limits_{i=l}^{r} a_i)$ taken modulo $10^9+7$, where $\varphi$ denotes Euler's totient function.
翻译中…

The Euler's totient function of a positive integer $n$ (denoted as $\varphi(n)$) is the number of integers $x$ ($1 \le x \le n$) such that $\gcd(n,x) = 1$.

翻译中…

Input

翻译中…

The first line contains two integers $n$ and $q$ ($1 \le n \le 4 \cdot 10^5$, $1 \le q \le 2 \cdot 10^5$) — the number of elements in array $a$ and the number of queries.

翻译中…

The second line contains $n$ integers $a_1, a_2, \ldots, a_n$ ($1 \le a_i \le 300$) — the elements of array $a$.

翻译中…

Then $q$ lines follow, describing queries in the format given in the statement.

翻译中…
  1. "MULTIPLY l r x" ($1 \le l \le r \le n$, $1 \le x \le 300$) — denotes a multiplication query.
  2. "TOTIENT l r" ($1 \le l \le r \le n$) — denotes a query on the value of Euler's totient function.
翻译中…

It is guaranteed that there is at least one "TOTIENT" query.

翻译中…

Output

翻译中…

For each "TOTIENT" query, print the answer to it.

翻译中…

Note

翻译中…

In the first example, $\varphi(1) = 1$ for the first query, $\varphi(2) = 1$ for the second query and $\varphi(6) = 2$ for the third one.

翻译中…

样例

Input #1
4 4
5 9 1 2
TOTIENT 3 3
TOTIENT 3 4
MULTIPLY 4 4 3
TOTIENT 4 4
Output #1
1
1
2
InputCopy OutputCopy
题目信息
题号
1114F
时间限制
5.5 s
内存限制
256 MB
标签
位运算
数据结构
分治
数学
数论

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。