#P11376. [COCI 2015/2016 #3] NEKAMELEONI

[COCI 2015/2016 #3] NEKAMELEONI

题目描述

给你一个 nn 个元素的数组。你需要处理 qq 个查询。

  • 第一种查询需要你将数组中的第 pp 个数字改为 vv
  • 第二种查询需要你确定当前数组中最短的连续子数组的长度,这个子数组必须要包含从 11kk 的所有数字。

输入格式

第一行,三个正整数 n,k,mn, k, m

第二行,nn 个正整数,用空格隔开,表示数组中的数。

接着,mm 行,表示 mm 个查询,每个查询有以下两种形式。

  • 1 p v\texttt{1 p v}:将数组中的第 pp 个数字改为 vv
  • 2\texttt{2}:确定并输出当前数组中最短的连续子数组的长度,这个子数组必须要包含从 11kk 的所有数字。

输出格式

仅查询 22 有输出。

对于每个查询 22,输出当前数组中最短的连续子数组的长度(这个子数组必须要包含从 11kk 的所有数字),若没有输出 -1\texttt{-1}

输入输出样例 #1

输入 #1

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

输出 #1

3
-1
4

输入输出样例 #2

输入 #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

说明/提示

数据范围及约定

  • 对于 30%30\% 的数据,1n,m5×1031\le n, m \le 5 \times 10 ^ 3
  • 对于 100%100\% 的数据,1n,m1051 \le n, m \le 10^51k501\le k \le 501pn1 \le p \le n1vk1\le v \le k