对于给定的长度为 的数组 ,你需要构建一个能够动态维护区间和信息的数据结构,使得其能支持: 区间加数:将 这个区间中的全部元素修改为其与一个数 相加后的值,即 。 区间乘数:将 这个区间中的全部元素修改为其与一个数 相乘后的值,即 。 单点求值:输出下标为 的元素的值对 取模后的结果,即 。
输入描述:
第一行输入两个整数  代表数组中的元素数量、操作次数。第二行输入  个整数  代表初始数组。此后  行,每行先输入一个整数  代表操作编号,随后:若  ,在同一行输入三个整数  代表区间加数;若  ,在同一行输入三个整数  代表区间乘数;若  ,在同一行输入一个整数  代表单点求值。


输出描述:
对于每一次询问,输出一行一个整数代表下标为  的元素的值对  取模后的结果。保证至少存在一次询问。
示例1

输入

6 4
1 1 4 5 1 4
1 1 6 4
2 1 3 2
1 1 4 5
3 3

输出

21
加载中...