Mocha 的序列
题号:NC218858
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

Mocha 扔给你一个  个元素的序列 ,初始有  ,你需要维护一个数据结构,支持  次下列三种操作之一:
  • 给定正整数  ,对任意 a_i 变为
  • 定正整数  ,对任意 将 a_i 变为 ka_i
  • 定正整数  ,输出

输入描述:

第一行一个正整数  (),表示序列的长度。
第二行一个正整数  (),表示操作的次数。
接下来  行,每行代表一个操作,为以下三种形式之一:
  
   
  
分别对应题目中对应的三种操作,保证 

输出描述:

对于每个第三种询问,输出一行,一个非负整数,表示  的值。
示例1

输入

复制
2 
1
3 1 2

输出

复制
0

说明

\left(\prod \limits _{i=1}^2 a_i\right) \bmod (2-1+1)! =(1\times2)\bmod2=0