简单数据结构2
题号:NC17192
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 64 M,其他语言128 M
64bit IO Format: %lld

题目描述

你需要实现m个操作,操作有两种:

1.把序列中所有值为x的数的值变成y

2.找出一个位置i满足ai==x,找出一个位置j满足aj==y,使得|i-j|最小,并输出|i-j|

输入描述:

第一行两个数n,m

之后一行n个数,表示序列a

之后m行,每行三个数opt x y

如果opt为1,代表把序列中所有值为x位置的值变成y

如果opt为2,代表找出一个位置i满足ai==x,找出一个位置j满足aj==y,使得|i-j|最小,并输出|i-j|

本题强制在线,输入的x和y需要xor上一次询问的答案

对于第一次询问,上一次答案为0

如果上一次输出`Chtholly`,xor时认为上一次的答案为0

输出描述:

对于每个2操作,输出一行一个数表示答案

如果无法找出满足题意的i,j,则输出`Chtholly`
示例1

输入

复制
5 5
1 2 2 4 4
2 3 3
2 2 4
1 3 2
1 5 5
2 2 5

输出

复制
Chtholly
1
1

备注:

对于100%的数据,0 <=出现的所有数在解密后<= 100000