#include <bits/stdc++.h>
using namespace std;
int a[300005],jump[300005],cnt[300005],now[300005];
int block;
int main()
{
int n;
scanf("%d",&n);
block=sqrt(n);
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
for(int i=1;i<=200000;i++) now[i]=2e9;
now[0]=0;
for(int i=1;i<=n;i++)
now[i]=(i-1)/block+1;
for(int i=1;i<=n;i++)
{
int u=i,step=0;
while(now[u]<now[i]+1)
{
//cout<<i;
step++;
u=a[u]+u;
// cout<<1;
}
jump[i]=u;
cnt[i]=step;
}
int m;
scanf("%d",&m);
while(m--)
{
int op;
scanf("%d",&op);
if(op==1)
{
int k;
scanf("%d",&k);
k++;
int s=0;
for(int i=k;;)//奇怪的马蜂
{
s+=cnt[i];
i=jump[i];
if(i>n) break;
}
printf("%d\n",s);
}
if(op==2)
{
int j,k;
scanf("%d%d",&j,&k);
j++;
a[j]=k;
for(int i=j;;i--)
{
int u=i,step=0;
while(now[u]<now[i]+1)
{
step++;
u=a[u]+u;
}
jump[i]=u;
cnt[i]=step;
if(now[i]!=now[i-1]) break;
}
}
}
return 0;
}