#include <iostream>
#include <cstdio>
using namespace std;
#define REP_1(i, n) for (int i=1;i<=int(n);++i)
#define REP_1_C(i, n) for (int n____=int(n),i=1;i<=n____;++i)
#define DO(N) while (N--)
#define DO_C(n) int n____ = n; while(n____--)
template < class T> inline void RD( T & x) { char c; for ( c = getchar ( ) ; c < '0' ; c = getchar ( ) ) ; x = c - '0' ; for ( c = getchar ( ) ; c >= '0' ; c = getchar ( ) ) x = x * 10 + c - '0' ; }
inline int RD( ) { int x; RD( x) ; return x; }
template < class T> inline T& _RD( T & x) { RD( x) ; return x; }
template < class T0, class T1> inline void RD( T0 & x0, T1 & x1) { RD( x0) , RD( x1) ; }
template < class T> inline void OT( const T & x) { printf ( "%d\n " , x) ; }
/* .................................................................................................................................. */
const int N = 200001 ;
int l[ N] , r[ N] , p[ N] , sz[ N] ; bool rt[ N] = { true } ;
int n, ans;
#define lx l[x]
#define rx r[x]
inline void Set( int l[ ] , int y, int x) {
l[ y] = x, p[ x] = y;
}
inline void Rotate( int x) {
int y = p[ x] , z = p[ y] ;
if ( ! rt[ y] ) Set( y == l[ z] ? l : r, z, x) ;
else p[ x] = z;
if ( x == l[ y] ) {
Set( l, y, rx) , Set( r, x, y) ;
sz[ y] - = sz[ x] ;
}
else {
Set( r, y, lx) , Set( l, x, y) ;
sz[ x] + = sz[ y] ;
}
if ( rt[ y] ) rt[ y] = false , rt[ x] = true ;
}
inline void Splay( int x) {
while ( ! rt[ x] ) Rotate( x) ;
}
void Access( int _x) {
int x = _x, y = 0 ;
do {
Splay( x) , rt[ r[ x] ] = true , rt[ r[ x] = y] = false ;
x = p[ y = x] ;
} while ( x) ;
Splay( _x) ;
}
void Link( int x, int y) {
Access( x) , rt[ l[ x] ] = true , sz[ x] = 1 ;
lx = p[ lx] = 0 , p[ x] = y;
Access( x) ;
}
void init( ) {
REP_1_C( i, _RD( n) ) sz[ i] = 1 , rt[ i] = true ;
int k; REP_1( i, n) {
RD( k) ; if ( i + k <= n) p[ i] = i + k;
}
}
int main( ) {
//freopen("in.txt", "r", stdin);
//freopen("out.txt", "w", stdout);
//ios::sync_with_stdio(false);
init( ) ;
int cmd, x, k;
DO_C( RD( ) ) {
RD( cmd, x) , ++ x;
if ( cmd == 1 ) {
Access( x) , OT( sz[ x] ) ;
}
else {
RD( k) ;
if ( x + k <= n) Link( x, x+ k) ;
else Link( x, 0 ) ;
}
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGlvPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwojZGVmaW5lIFJFUF8xKGksIG4pIGZvciAoaW50IGk9MTtpPD1pbnQobik7KytpKQojZGVmaW5lIFJFUF8xX0MoaSwgbikgZm9yIChpbnQgbl9fX189aW50KG4pLGk9MTtpPD1uX19fXzsrK2kpCiNkZWZpbmUgRE8oTikgd2hpbGUgKE4tLSkKI2RlZmluZSBET19DKG4pIGludCBuX19fXyA9IG47IHdoaWxlKG5fX19fLS0pCnRlbXBsYXRlPGNsYXNzIFQ+IGlubGluZSB2b2lkIFJEKFQgJngpe2NoYXIgYzsgZm9yIChjID0gZ2V0Y2hhcigpOyBjIDwgJzAnOyBjID0gZ2V0Y2hhcigpKTsgeCA9IGMgLSAnMCc7IGZvciAoYyA9IGdldGNoYXIoKTsgYyA+PSAnMCc7IGMgPSBnZXRjaGFyKCkpIHggPSB4ICogMTAgKyBjIC0gJzAnO30KaW5saW5lIGludCBSRCgpeyBpbnQgeDsgUkQoeCk7IHJldHVybiB4O30KdGVtcGxhdGU8Y2xhc3MgVD4gaW5saW5lIFQmIF9SRChUICZ4KXsgUkQoeCk7IHJldHVybiB4O30KdGVtcGxhdGU8Y2xhc3MgVDAsIGNsYXNzIFQxPiBpbmxpbmUgdm9pZCBSRChUMCAmeDAsIFQxICZ4MSl7UkQoeDApLCBSRCh4MSk7fQp0ZW1wbGF0ZTxjbGFzcyBUPiBpbmxpbmUgdm9pZCBPVChjb25zdCBUICZ4KXtwcmludGYoIiVkXG4iLCB4KTt9CgovKiAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uICovCmNvbnN0IGludCBOID0gMjAwMDAxOwoKaW50IGxbTl0sIHJbTl0sIHBbTl0sIHN6W05dOyBib29sIHJ0W05dID0ge3RydWV9OwppbnQgbiwgYW5zOwoKI2RlZmluZSBseCBsW3hdCiNkZWZpbmUgcnggclt4XQoKaW5saW5lIHZvaWQgU2V0KGludCBsW10sIGludCB5LCBpbnQgeCl7CiAgICBsW3ldID0geCwgcFt4XSA9IHk7Cn0KCmlubGluZSB2b2lkIFJvdGF0ZShpbnQgeCl7CiAgICBpbnQgeSA9IHBbeF0sIHogPSBwW3ldOwoKICAgIGlmICghcnRbeV0pIFNldCh5ID09IGxbel0gPyBsIDogciwgeiwgeCk7CiAgICBlbHNlIHBbeF0gPSB6OwoKICAgIGlmICh4ID09IGxbeV0pewogICAgICAgIFNldChsLCB5LCByeCksIFNldChyLCB4LCB5KTsKICAgICAgICBzelt5XSAtPSBzelt4XTsKICAgIH0KICAgIGVsc2UgewogICAgICAgIFNldChyLCB5LCBseCksIFNldChsLCB4LCB5KTsKICAgICAgICBzelt4XSArPSBzelt5XTsKICAgIH0KCiAgICBpZiAocnRbeV0pIHJ0W3ldID0gZmFsc2UsIHJ0W3hdID0gdHJ1ZTsKfQoKaW5saW5lIHZvaWQgU3BsYXkoaW50IHgpewogICAgd2hpbGUgKCFydFt4XSkgUm90YXRlKHgpOwp9Cgp2b2lkIEFjY2VzcyhpbnQgX3gpewogICAgaW50IHggPSBfeCwgeSA9IDA7CiAgICBkb3sKICAgICAgICBTcGxheSh4KSwgcnRbclt4XV0gPSB0cnVlLCBydFtyW3hdID0geV0gPSBmYWxzZTsKICAgICAgICB4ID0gcFt5ID0geF07CiAgICB9IHdoaWxlICh4KTsKCiAgICBTcGxheShfeCk7Cn0KCnZvaWQgTGluayhpbnQgeCwgaW50IHkpewogICAgQWNjZXNzKHgpLCBydFtsW3hdXSA9IHRydWUsIHN6W3hdID0gMTsKICAgIGx4ID0gcFtseF0gPSAgMCwgcFt4XSA9IHk7CiAgICBBY2Nlc3MoeCk7Cn0KCnZvaWQgaW5pdCgpewogICAgUkVQXzFfQyhpLCBfUkQobikpIHN6W2ldID0gMSwgcnRbaV0gPSB0cnVlOwogICAgaW50IGs7IFJFUF8xKGksIG4pewogICAgICAgIFJEKGspOyBpZiAoaSArIGsgPD0gbikgcFtpXSA9IGkgKyBrOwogICAgfQp9CgoKaW50IG1haW4oKXsKICAgIC8vZnJlb3BlbigiaW4udHh0IiwgInIiLCBzdGRpbik7CiAgICAvL2ZyZW9wZW4oIm91dC50eHQiLCAidyIsIHN0ZG91dCk7CiAgICAvL2lvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKCiAgICBpbml0KCk7CgogICAgaW50IGNtZCwgeCwgazsKICAgIERPX0MoUkQoKSl7CgogICAgICAgIFJEKGNtZCwgeCksICsreDsKICAgICAgICBpZiAoY21kID09IDEpewogICAgICAgICAgICBBY2Nlc3MoeCksIE9UKHN6W3hdKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIFJEKGspOwogICAgICAgICAgICBpZiAoeCArIGsgPD0gbikgTGluayh4LCB4K2spOwogICAgICAgICAgICBlbHNlIExpbmsoeCwgMCk7CiAgICAgICAgfQogICAgfQp9Cg==