Description
给定一组数 A
1,A
2,…,A
n,维护 m 个操作:
-
将一个 Ai 修改为 x。
-
查询:
假设你可以执行以下操作(你进行的操作不会真的在序列上进行):
选择两个相同的数 Ai,Aj,删除它们,并加入 Ai+1。
求在任意执行的情况下,最终的数组最多有多少种不同的数字。
Input
第一行两个数 n, m,表示数组长度和操作数量。
然后一行 n 个数 A1,A2,…,An。
然后 m 行,每行一个操作 1,i,x 或者 2。
Output
对于每一个 2 操作,输出一行一个数表示答案。
5 9
1 2 3 4 5
2
1 1 2
2
1 3 2
2
1 4 3
2
1 5 3
2