Вам дан массив \(a_1, a_2, \ldots, a_n\).
Необходимо выполнить \(q\) запросов следующих двух видов:
- «MULTIPLY l r x» — для каждого \(i\) (\(l \le i \le r\)) нужно умножить \(a_i\) на \(x\).
- «TOTIENT l r» — вычислить \(\varphi(\prod \limits_{i=l}^{r} a_i)\) по модулю \(10^9+7\), где \(\varphi\) обозначает функцию Эйлера.
Функцией Эйлера целого положительного числа \(n\) (обозначается как \(\varphi(n)\)) называется количество целых чисел \(x\) (\(1 \le x \le n\)), таких что \(\gcd(n,x) = 1\).
Выходные данные
Для каждого запроса типа «TOTIENT» выведите ответ на него.
Примечание
В первом примере \(\varphi(1) = 1\) для первого запроса, \(\varphi(2) = 1\) для второго запроса и \(\varphi(6) = 2\) для третьего.
Примеры
| № | Входные данные | Выходные данные |
|
1
|
4 4 5 9 1 2 TOTIENT 3 3 TOTIENT 3 4 MULTIPLY 4 4 3 TOTIENT 4 4
|
1
1
2
|