“嘿!我有一个关于变色龙的超棒题目,可以作为周六比赛的第 5 题。”
“说来听听……”
(……)
“那太难了,我有一个简单点的,他们甚至连这个都解不出来。”
“给你一个由 $N$ 个介于 $[1, K]$ 之间的整数组成的数组。你需要处理 $M$ 个操作。第一种操作需要你将数组中的某个数修改为另一个值,第二种操作需要你求出当前数组中包含 $1$ 到 $K$ 所有整数的最短连续子数组的长度。”
“嗯,我可以用 $O(N^6)$ 的复杂度解决。$N$ 的限制是多少?”
输入格式
第一行包含整数 $N$、$K$ 和 $M$($1 \le N, M \le 100\,000$,$1 \le K \le 50$)。
第二行包含 $N$ 个空格分隔的整数,表示数组的初始元素。
接下来有 $M$ 行,每行代表一个操作,格式为以下两种之一:
1 p v— 将第 $p$ 个数的值修改为 $v$($1 \le p \le N$,$1 \le v \le K$)2— 询问当前数组中包含 $1$ 到 $K$ 所有整数的最短连续子数组的长度
输出格式
输出必须包含所有第二种操作的答案,每个答案占一行。
如果不存在满足条件的子数组,则输出 $-1$。
子任务
对于 $30\%$ 的测试数据,满足 $1 \le N, M \le 5\,000$。
样例
输入样例 1
4 3 5 2 3 1 2 2 1 3 3 2 1 1 1 2
输出样例 1
3 -1 4
输入样例 2
6 3 6 1 2 3 2 1 1 2 1 2 1 2 1 4 1 1 6 2 2
输出样例 2
3 3 4