const int maxn = 100008 ;
int x[maxn] , n ;
int lowbit(int x){
return x & (-x) ;
}
void add(int i , int c){
while(i <= n){
x[i] += c ;
i += lowbit(i) ;
}
}
int sum(int i){
int s = 0 ;
while(i >= 1){
s += x[i] ;
i -= lowbit(i) ;
}
return s ;
}
int a[maxn] ;
int main(){
int i , m , d ;
char ch[2] ;
while(scanf("%d" , &n) != EOF){
memset(x , 0 , sizeof(x)) ;
for(i = 1 ; i <= n ; i++){
scanf("%d" , &a[i]) ;
add(i , a[i]) ;
}
scanf("%d" , &m) ;
while(m--){
scanf("%s" , ch) ;
if(ch[0] == 'p'){
scanf("%d%d" , &i , &d) ;
add(i , d - a[i]) ;
a[i] = d ;
}
else{
scanf("%d" , &d) ;
int l = 1 , r = n , mid , s ;
while(l <= r){
mid = (l + r) >> 1 ;
if(sum(mid) >= d){
s = mid ;
r = mid - 1 ;
}
else l = mid + 1 ;
}
printf("%d\n" , s) ;
}
}
}
return 0 ;
}