CF1114F Please, another Queries on Array?

Description

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](http://gg.gg/euler_totient) 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 Format

N/A

Output Format

N/A

Explanation/Hint

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.