题目描述
给定一个长度为N的序列,请维护M个操作,每个操作为以下三种类型之一:
1 i:输出当前序列的第项.
2 l r x:将序列的第项到第r项都修改为正整数x,保证x不是42的幂次.
3 l r x:将序列的第项到第r项都加上正整数x,如果该操作后序列中出现42的幂次,则不断重复此操作直到没有42的幂次.
初始时保证序列中没有数为42的幂次(由此可知任何一个操作结束后序列中都不应有42的幂次),特别的,1=42^0也算作42的幂次.
输入格式
第一行包含两个正整数N和M,分别表示序列长度与操作个数.
第二行包含N个正整数,表示给定的序列.
接下来M行,每行包含一个操作,操作的输入格式与题目描述一致.
输出格式
对于所有操作1,输出一个整数表示答案
输入样例#1
6 12
40 1700 7 1672 4 1722
3 2 4 42
1 2
1 3
3 2 6 50
1 2
1 4
1 6
2 3 4 41
3 1 5 1
1 1
1 3
1 5
输出样例#1
1742
49
1842
1814
1822
43
44
107
数据范围
对于100%的数据,保证1 <= N, M <= 10^5,初始时序列中的数以及操作2, 3中使用的x都不超过10^9.