#include <cstring>
#include <cmath>
#include <algorithm>
#include <cstdlib>
#include <cstdio>
#include <fstream>
#include <iostream>
#define rep(i, l, r) for(int i = l; i <= r; i++)
#define down(i, l, r) for(int i = l; i >= r; i--)
#define MS 234567
#define MAX 1037471823
#define Q 1
using namespace std;
int s, n, m, k[MS], next[MS], c[MS], q, a, b;
void Build(int x)
{
int a;
if (x == n-1)
{
int b = (s-1)%m+1; down(i, b, 1)
{
a = x*m+i;
if (k[a]+a > x*m+b) next[a] = k[a]+a, c[a] = 1; else next[a] = next[k[a]+a], c[a] = c[k[a]+a]+1;
}
return;
}
down(i, m, 1)
{
a = x*m+i;
if (k[a]+a > x*m+m) next[a] = k[a]+a, c[a] = 1; else next[a] = next[k[a]+a], c[a] = c[k[a]+a]+1;
}
}
int Jump(int x)
{
int ans = 0;
while (x <= s) ans += c[x], x = next[x];
return ans;
}
int main()
{
scanf("%d", &s); rep(i, 1, s) scanf("%d", &k[i]);
m = int(sqrt(s)); while (n*m < s) n++;
rep(i, 0, n-1) Build(i);
scanf("%d", &q);
rep(i, 1, q)
{
scanf("%d", &a);
if (a == 1)
{
scanf("%d", &a); a++;
printf("%d\n", Jump(a));
}
else
{
scanf("%d%d", &a, &b); a++;
k[a] = b;
Build((a-1)/m);
}
}
return 0;
}
I2luY2x1ZGUgPGNzdHJpbmc+CiNpbmNsdWRlIDxjbWF0aD4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGNzdGRsaWI+CiNpbmNsdWRlIDxjc3RkaW8+CiNpbmNsdWRlIDxmc3RyZWFtPgojaW5jbHVkZSA8aW9zdHJlYW0+CgojZGVmaW5lIHJlcChpLCBsLCByKSBmb3IoaW50IGkgPSBsOyBpIDw9IHI7IGkrKykKI2RlZmluZSBkb3duKGksIGwsIHIpIGZvcihpbnQgaSA9IGw7IGkgPj0gcjsgaS0tKQojZGVmaW5lIE1TIDIzNDU2NwojZGVmaW5lIE1BWCAxMDM3NDcxODIzCiNkZWZpbmUgUSAxCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IHMsIG4sIG0sIGtbTVNdLCBuZXh0W01TXSwgY1tNU10sIHEsIGEsIGI7Cgp2b2lkIEJ1aWxkKGludCB4KQp7CglpbnQgYTsKCWlmICh4ID09IG4tMSkKCXsKCQlpbnQgYiA9IChzLTEpJW0rMTsgZG93bihpLCBiLCAxKQoJCXsKCQkJYSA9IHgqbStpOwoJCQlpZiAoa1thXSthID4geCptK2IpIG5leHRbYV0gPSBrW2FdK2EsIGNbYV0gPSAxOyBlbHNlIG5leHRbYV0gPSBuZXh0W2tbYV0rYV0sIGNbYV0gPSBjW2tbYV0rYV0rMTsKCQl9CgkJcmV0dXJuOwoJfQoJZG93bihpLCBtLCAxKQoJewoJCWEgPSB4Km0raTsKCQlpZiAoa1thXSthID4geCptK20pIG5leHRbYV0gPSBrW2FdK2EsIGNbYV0gPSAxOyBlbHNlIG5leHRbYV0gPSBuZXh0W2tbYV0rYV0sIGNbYV0gPSBjW2tbYV0rYV0rMTsKCX0KfQoKaW50IEp1bXAoaW50IHgpCnsKCWludCBhbnMgPSAwOwoJd2hpbGUgKHggPD0gcykgYW5zICs9IGNbeF0sIHggPSBuZXh0W3hdOwoJcmV0dXJuIGFuczsKfQoKaW50IG1haW4oKQp7CglzY2FuZigiJWQiLCAmcyk7IHJlcChpLCAxLCBzKSBzY2FuZigiJWQiLCAma1tpXSk7CgltID0gaW50KHNxcnQocykpOyB3aGlsZSAobiptIDwgcykgbisrOwoJcmVwKGksIDAsIG4tMSkgQnVpbGQoaSk7CglzY2FuZigiJWQiLCAmcSk7CglyZXAoaSwgMSwgcSkKCXsKCQlzY2FuZigiJWQiLCAmYSk7CgkJaWYgKGEgPT0gMSkKCQl7CgkJCXNjYW5mKCIlZCIsICZhKTsgYSsrOwoJCQlwcmludGYoIiVkXG4iLCBKdW1wKGEpKTsKCQl9CgkJZWxzZQoJCXsKCQkJc2NhbmYoIiVkJWQiLCAmYSwgJmIpOyBhKys7CgkJCWtbYV0gPSBiOwoJCQlCdWlsZCgoYS0xKS9tKTsKCQl9Cgl9CglyZXR1cm4gMDsKfQ==