#include <iostream>
#include <cstdio>
#include <fstream>
using namespace std;
const int MAXN = 1e4;
const int LEN = 100;
int solve(int x) {
return x / LEN + 1;
}
int n, m;
int a[MAXN + 10], lazy[MAXN + 10];
int Query(int st) {
++st;
int res = 0;
while (st <= n) {
res++;
st += a[st];
}
return res;
}
void Add(int i, int j) {
++i;
a[i] = j;
}
int main() {
freopen("bzoj_2002.in", "r", stdin);
freopen("bzoj_2002.out", "w", stdout);
scanf("%d", &n);
for (int i = 1; i <= n; ++i) {
scanf("%d", &a[i]);
}
scanf("%d", &m);
while (m--) {
int op;
scanf("%d", &op);
if (op == 1) {
int st;
scanf("%d", &st);
printf("%d\n", Query(st));
} else if (op == 2) {
int i, j;
scanf("%d %d", &i, &j);
Add(i, j);
}
}
return 0;
}