时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
这不刚过完儿童节,杰哥陪他儿子小杰哥去迪士尼玩了一天,回家后小杰哥向杰哥提出了一个问题让杰哥百思不得其解。于是杰哥向聪明的你请求帮助,问题如下:
开始时有

数,第

个数表示为

,每个数字属于一个独立的集合。
现有两种操作,共操作

次:

操作1:给你两个数表示合并第

个数和第

个数所在的两个集合

操作2:给你一个数

,表示求第

个数所在的集合内出现次数最多的数(若有多个,则取最小的数)
你能否帮助杰哥解决难题?
输入描述:
第一行两个正整数
,表示初始集合个数和操作次数。
第二行
个正整数,第
个数代表
。
接下来有

行,每行分别表示一次操作。用若干个整数表示不同类型的操作,具体格式如下:
含义:给两个数,表示合并第

个数和第

个数所在的两个集合
操作2:
含义:给一个数

,表示求第

个数所在的集合内出现次数最多的数(若有多个,则取最小的数)
输出描述:
如果有
个操作2,那么应该输出
行,其中第
行表示第
次询问的答案。