Problem G: 小R与手机

"
Time Limit $1$ 秒/Second(s) Memory Limit $512$ 兆字节/Megabyte(s)
提交总数 $4$ 正确数量 $4$
裁判形式 标准裁判/Standard Judge 我的状态 尚未尝试
难度 分类标签
小R有n部手机,为了便于管理,他对一些手机设置了“呼叫转移”的功能。
具体来说,第i ( 1 <= i <= n )部手机有个参数 ai(0<=ai<=n,ai≠ i )。若 ai  0 则表示第i部手机接到电话时会将电话无条件转移给第 ai部手机(此时如果 aai≠0, 会继续进行呼叫转移)。
如果一部手机接到电话会导致至少 109次呼叫转移,则这次电话无法接通。
现在有m个事件依次发生,具体如下:
1 x y表示将第x部手机的参数设置为y,即将 ax设置为y ;
2 x表示询问给第x部手机打电话,最终接到电话的手机编号(如果无法接通, 则编号为-1 )。
小R当然知道怎么做啦!但是他想考考你。
只包含一组测试数据。
输入的第一行有两个整数n, m。保证1 <= n, m <= 2 * 105
接下来一行,包含n个整数,第i个整数为 ai
接下来m行,每一行为一个事件,具体格式见问题描述。
对于事件1,保证1 <= x <= n, 0 <= y <= n, x  y ;对于事件2,保证1 <= x <= n
对每个询问事件输出一行一个整数,表示最终接到电话的手机编号,如果无法接 通,输出-1。
 
5 6
2 3 4 5 0
2 2
2 5
1 4 3
2 1
1 4 0
2 1
5
5
-1
4