import java.util.* ;
public class Main {
public static void main
( String args
[ ] ) { Scanner s
= new Scanner
( System .
in ) ; int n= s.nextInt ( ) ;
int q= s.nextInt ( ) ;
int [ ] arr= new int [ n] ;
for ( int i= 0 ; i< n; i++ ) {
arr[ i] = s.nextInt ( ) ;
}
int [ ] tree= new int [ 4 * n+ 1 ] ;
buildTree( arr,0 ,n- 1 ,tree,1 ) ;
while ( q--> 0 ) {
int what= s.nextInt ( ) ;
if ( what== 1 ) {
int l= s.nextInt ( ) ;
int r= s.nextInt ( ) ;
int min= query( arr,0 ,n- 1 ,l,r,tree,1 ) ;
} else {
int x= s.nextInt ( ) ;
int y= s.nextInt ( ) ;
updateNode( tree,0 ,n- 1 ,x,y,1 ) ;
}
}
}
public static void buildTree( int [ ] arr,int s,int e,int [ ] tree,int index) {
if ( s== e) {
tree[ index] = arr[ s] ;
return ;
}
int mid= ( s+ e) / 2 ;
buildTree( arr,s,mid,tree,2 * index) ;
buildTree( arr,mid+ 1 ,e,tree,2 * index+ 1 ) ;
tree
[ index
] = Math .
min ( tree
[ 2 * index
] ,tree
[ 2 * index
+ 1 ] ) ; return ;
}
public static int query( int [ ] arr,int ss,int se,int qs,int qe,int [ ] tree,int index) {
//complete
if ( qs<= ss && qe>= se) {
return tree[ index] ;
}
//no overlap
if ( ss> qe || se< qs)
//partial
int mid= ( ss+ se) / 2 ;
int left= query( arr,ss,mid,qs,qe,tree,2 * index) ;
int right= query( arr,mid+ 1 ,se,qs,qe,tree,2 * index+ 1 ) ;
return Math .
min ( left,right
) ; }
public static void updateNode( int [ ] tree,int ss,int se,int i,int increment,int index) {
//no overlap
if ( i< ss || i> se)
return ;
//complete
if ( ss== se) {
tree[ index] += increment;
return ;
}
//partial
int mid= ( ss+ se) / 2 ;
updateNode( tree,ss,mid,i,increment,2 * index) ;
updateNode( tree,mid+ 1 ,se,i,increment,2 * index+ 1 ) ;
tree
[ index
] = Math .
min ( tree
[ 2 * index
] ,tree
[ 2 * index
+ 1 ] ) ; return ;
}
}
aW1wb3J0IGphdmEudXRpbC4qOwpwdWJsaWMgY2xhc3MgTWFpbiB7CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB7CiAgICAgICAgU2Nhbm5lciBzPW5ldyBTY2FubmVyKFN5c3RlbS5pbik7CiAgICAgICAgaW50IG49cy5uZXh0SW50KCk7CiAgICAgICAgaW50IHE9cy5uZXh0SW50KCk7CiAgICAgICAgaW50W10gYXJyPW5ldyBpbnRbbl07CiAgICAgICAgZm9yKGludCBpPTA7aTxuO2krKyl7CiAgICAgICAgICAgIGFycltpXT1zLm5leHRJbnQoKTsKICAgICAgICB9CiAgICAgICAgaW50W10gdHJlZT1uZXcgaW50WzQqbisxXTsKICAgICAgICBidWlsZFRyZWUoYXJyLDAsbi0xLHRyZWUsMSk7CiAgICAgICAgCiAgICAgICAgd2hpbGUocS0tPjApewogICAgICAgICAgICBpbnQgd2hhdD1zLm5leHRJbnQoKTsKICAgICAgICAgICAgaWYod2hhdD09MSl7CiAgICAgICAgICAgICAgICBpbnQgbD1zLm5leHRJbnQoKTsKICAgICAgICAgICAgICAgIGludCByPXMubmV4dEludCgpOwogICAgICAgICAgICAgICAgaW50IG1pbj1xdWVyeShhcnIsMCxuLTEsbCxyLHRyZWUsMSk7CiAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4obWluKTsKICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICBpbnQgeD1zLm5leHRJbnQoKTsKICAgICAgICAgICAgICAgIGludCB5PXMubmV4dEludCgpOwogICAgICAgICAgICAgICAgdXBkYXRlTm9kZSh0cmVlLDAsbi0xLHgseSwxKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgCiAgICB9CgogICAgcHVibGljIHN0YXRpYyB2b2lkIGJ1aWxkVHJlZShpbnRbXSBhcnIsaW50IHMsaW50IGUsaW50W10gdHJlZSxpbnQgaW5kZXgpewogICAgICAgIGlmKHM9PWUpewogICAgICAgICAgICB0cmVlW2luZGV4XT1hcnJbc107CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgaW50IG1pZD0ocytlKS8yOwogICAgICAgIGJ1aWxkVHJlZShhcnIscyxtaWQsdHJlZSwyKmluZGV4KTsKICAgICAgICBidWlsZFRyZWUoYXJyLG1pZCsxLGUsdHJlZSwyKmluZGV4KzEpOwogICAgICAgIHRyZWVbaW5kZXhdPU1hdGgubWluKHRyZWVbMippbmRleF0sdHJlZVsyKmluZGV4KzFdKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBpbnQgcXVlcnkoaW50W10gYXJyLGludCBzcyxpbnQgc2UsaW50IHFzLGludCBxZSxpbnRbXSB0cmVlLGludCBpbmRleCl7CiAgICAgICAgLy9jb21wbGV0ZQogICAgICAgIGlmKHFzPD1zcyAmJiBxZT49c2UpewogICAgICAgICAgICByZXR1cm4gdHJlZVtpbmRleF07CiAgICAgICAgfQovL25vIG92ZXJsYXAKaWYoc3M+cWUgfHwgc2U8cXMpCnJldHVybiBJbnRlZ2VyLk1BWF9WQUxVRTsKLy9wYXJ0aWFsCmludCBtaWQ9KHNzK3NlKS8yOwppbnQgbGVmdD1xdWVyeShhcnIsc3MsbWlkLHFzLHFlLHRyZWUsMippbmRleCk7CmludCByaWdodD1xdWVyeShhcnIsbWlkKzEsc2UscXMscWUsdHJlZSwyKmluZGV4KzEpOwpyZXR1cm4gTWF0aC5taW4obGVmdCxyaWdodCk7CiAgICB9CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgdXBkYXRlTm9kZShpbnRbXSB0cmVlLGludCBzcyxpbnQgc2UsaW50IGksaW50IGluY3JlbWVudCxpbnQgaW5kZXgpewovL25vIG92ZXJsYXAKaWYoaTxzcyB8fCBpPnNlKQpyZXR1cm47Ci8vY29tcGxldGUKaWYoc3M9PXNlKXsKdHJlZVtpbmRleF0rPWluY3JlbWVudDsKcmV0dXJuOwp9Ci8vcGFydGlhbAppbnQgbWlkPShzcytzZSkvMjsKdXBkYXRlTm9kZSh0cmVlLHNzLG1pZCxpLGluY3JlbWVudCwyKmluZGV4KTsKdXBkYXRlTm9kZSh0cmVlLG1pZCsxLHNlLGksaW5jcmVtZW50LDIqaW5kZXgrMSk7CiB0cmVlW2luZGV4XT1NYXRoLm1pbih0cmVlWzIqaW5kZXhdLHRyZWVbMippbmRleCsxXSk7CiByZXR1cm47CiAgICB9Cn0=