小R有n部手机,为了便于管理,他对一些手机设置了“呼叫转移”的功能。 具体来说,第i ( 1 <= i <= n )部手机有个参数 $a_i ( 0 <= a_i <= n, a_i \neq $ i )。若 $a_i$ $\neq$ 0 则表示第i部手机接到电话时会将电话无条件转移给第 $a_i $部手机(此时如果 $a_{a_i} \neq 0 $, 会继续进行呼叫转移)。 如果一部手机接到电话会导致至少 $10^9 $次呼叫转移,则这次电话无法接通。 现在有m个事件依次发生,具体如下: $\bullet $1 x y表示将第x部手机的参数设置为y,即将 $a_x$设置为y ; $\bullet $2 x表示询问给第x部手机打电话,最终接到电话的手机编号(如果无法接通, 则编号为-1 )。 小R当然知道怎么做啦!但是他想考考你。
输入解释
只包含一组测试数据。 输入的第一行有两个整数n, m。保证1 <= n, m <= 2 * $10^5 $。 接下来一行,包含n个整数,第i个整数为 $a_i $。 接下来m行,每一行为一个事件,具体格式见问题描述。 对于事件1,保证1 <= x <= n, 0 <= y <= n, x $\neq$ y ;对于事件2,保证1 <= x <= n