#P1009. 洞洞

洞洞

题目描述

汪老师很喜欢玩一个叫“洞洞”的游戏。这是一个单人游戏,规则如下:

从左往右有一排共 nn 个洞,编号从 11nn。每个洞有一个一个弹力,第 ii 个洞的弹力为 aia_i

如果我们将球投入到第 ii 个洞,则这个球将会谈到第 i+aii + a_i 个洞,然后再从第 i+aii + a_i 个洞弹到第 (i+ai)+ai+ai(i + a_i) + a_{ i + a_i } 个洞,……,依次循环,直到谈到第 nn 个洞的右边为止。

也就是说,只要球在第 ii 个洞,它就会谈到第 i+aii + a_i 个洞,然后这么一指弹……直到谈到某一个洞 ii,且 i+ai>ni + a_i \gt n,则这一次弹球会弹出到洞以外的地方,然后这一轮游戏结束。

接下来有 mm 次操作,操作分为如下两种类型:

  • 0 a b0\ a\ b:汪老师将第 aa 个洞的弹力修改为 bb
  • 1 a1\ a:汪老师在第 aa 个洞放了一个球。

对于每一次 1 a1\ a 操作,汪老师都想知道:球在离开这些洞之前最后一次弹到的那个洞的编号,以及从第 aa 个洞开始往右弹的过程中一共弹了多少次。

输入格式

第一行,两个整数 nnmm,以一个空格分隔,分别表示洞的数量以及操作次数(1n,m1051 \le n,m \le 10^5)。

第二行,nn 个整数 a1,a2,,an(1ain)a_1, a_2, \ldots, a_n(1 \le a_i \le n),分别表示初始时每个洞的弹力。

接下来 mm 行,每行包含一个操作。对于 0 a b0\ a\ b 操作,保证 1a,bn1 \le a, b \le n;对于 1 a1\ a 操作,保证 1an1 \le a \le n

输出格式

对于每次 0 a0\ a 操作,输出一行,包含两个整数,以一个空格分隔。其中,第一个整数表示最后一次弹到的那个洞的编号,第二个整数表示一共弹了多少次。

样例

8 5
1 1 1 1 1 2 8 2
1 1
0 1 3
1 1
0 3 4
1 2
8 7
8 5
7 3

说明/提示

数据规模与约定

  • 对于 30%30\% 的数据,n,m1000n, m \le 1000
  • 对于 100%100\% 的数据,n,m105n, m \le 10^5