#SGM0000051. Lại thêm truy vấn trên mảng (Please, another Queries on Array?)

Lại thêm truy vấn trên mảng (Please, another Queries on Array?)

Lại thêm truy vấn trên mảng (Please, another Queries on Array?)

Nguồn: Codeforces

Phiên bản: Phước Hưng OJ Extended

Đề bài

Mảng aia_i. MULTIPLY l r x nhân mọi phần tử đoạn với xx. TOTIENT l r yêu cầu φ(∏i=lrai)\varphi(\prod_{i=l}^{r}a_i) modulo 109+710^9+7.

Input

Dòng đầu chứa n,qn,q. Dòng thứ hai chứa a1,a2,…,ana_1,a_2,\ldots,a_n. Mỗi trong qq dòng tiếp theo là:

  • MULTIPLY l r x: nhân mọi aia_i với xx cho l≤i≤rl\le i\le r.
  • TOTIENT l r: hỏi φ(∏i=lrai)\varphi(\prod_{i=l}^{r}a_i) modulo 109+710^9+7.

Output

Mỗi truy vấn TOTIENT in một đáp án.

Subtask

  • Subtask 1 (20%): nn và số thao tác không vượt 30; các điều kiện còn lại giữ như đề đầy đủ.

  • Subtask 2 (30%): nn và số thao tác không vượt 3000; các điều kiện còn lại giữ như đề đầy đủ.

  • Subtask 3 (50%): toàn bộ giới hạn:

  • 1≤n≤4⋅1051\le n\le4\cdot10^5

  • 1≤q≤2⋅1051\le q\le2\cdot10^5

  • 1≤ai,x≤3001\le a_i,x\le300

Ví dụ

Input

4 4
5 9 1 2
TOTIENT 3 3
TOTIENT 3 4
MULTIPLY 4 4 3
TOTIENT 4 4

Output

1
1
2

Giải thích

Ba truy vấn lần lượt là φ(1)=1\varphi(1)=1, φ(2)=1\varphi(2)=1 và sau khi nhân phần tử cuối với 3 thì φ(6)=2\varphi(6)=2.