#include <iostream>
#include <string.h>
using namespace std;
long long int segT[ 32 ] ; //[1200000];
int R= 7 ; //262143;
long long int fSet( int no,int p1,int l2,int r2,long long int num) {
if ( r2< p1 || p1< l2) return segT[ no] ;
if ( l2== r2) {
segT[ no] = num;
return segT[ no] ;
}
int m= ( l2+ r2) / 2 ;
if ( l2<= p1 && p1<= m) {
segT[ no] = fSet( no* 2 + 1 ,p1,l2,m,num) ;
return segT[ no] ;
} else {
long long int res1= segT[ no* 2 + 1 ] ;
long long int res2= fSet( no* 2 + 2 ,p1,m+ 1 ,r2,num) ;
if ( res1== - 1 || res2== - 1 ) {
segT[ no] = - 1 ;
} else if ( res1== res2) {
segT[ no] = res1;
} else {
segT[ no] = - 1 ;
}
return segT[ no] ;
}
}
long long int fAdd( int no,int p1,int l2,int r2,long long int add) {
if ( r2< p1 || p1< l2) return segT[ no] ;
if ( l2== r2) {
segT[ no] + = add;
return segT[ no] ;
}
int m= ( l2+ r2) / 2 ;
long long int res1= - 1 ;
long long int res2= - 1 ;
if ( l2<= p1 && p1<= m) {
res1= fAdd( no* 2 + 1 ,p1,l2,m,add) ;
res2= segT[ no* 2 + 2 ] ;
} else {
res1= segT[ no* 2 + 1 ] ;
res2= fAdd( no* 2 + 2 ,p1,m+ 1 ,r2,add) ;
}
if ( res1== - 1 || res2== - 1 ) {
segT[ no] = - 1 ;
} else if ( res1== res2) {
segT[ no] = res1;
} else {
segT[ no] = - 1 ;
}
return segT[ no] ;
}
long long int fCheck( int no,int l,int r,int l2,int r2,long long int resA) {
if ( r2< l || r< l2) return resA;
if ( l2== r2) {
return segT[ no] ;
}
if ( l<= l2 && r2<= r) {
return segT[ no] ;
} else {
int m= ( l2+ r2) / 2 ;
long long int res1= fCheck( no* 2 + 1 ,l,r,l2,m,segT[ no* 2 + 1 ] ) ;
long long int res2= fCheck( no* 2 + 2 ,l,r,m+ 1 ,r2,segT[ no* 2 + 2 ] ) ;
if ( res1== - 1 || res2== - 1 ) {
return - 1 ;
} else if ( res1== res2) {
return res1;
} else {
return - 1 ;
}
}
}
int main( ) {
int n,m;
cin >> n>> m;
memset ( segT,- 1 ,sizeof ( segT) ) ;
for ( int i= 0 ; i< n; i++ ) {
long long int num;
cin >> num;
fSet( 0 ,i,0 ,R,num) ;
}
for ( int i= 0 ; i< m; i++ ) {
int c1;
cin >> c1;
if ( c1== 1 ) {
int p1,add;
cin >> p1>> add;
p1-- ;
fAdd( 0 ,p1,0 ,R,add) ;
} else {
int l,r;
cin >> l>> r;
l-- ;
r-- ;
if ( fCheck( 0 ,l,r,0 ,R,segT[ 0 ] ) == - 1 ) {
cout << "No" << endl;
} else {
cout << "Yes" << endl;
}
}
for ( int i= 0 ; i< 15 ; i++ ) {
cout << "(" << i<< "," << segT[ i] << ")" ;
}
cout << endl;
}
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpsb25nIGxvbmcgaW50IHNlZ1RbMzJdOy8vWzEyMDAwMDBdOwppbnQgUj03Oy8vMjYyMTQzOwoKbG9uZyBsb25nIGludCBmU2V0KGludCBubyxpbnQgcDEsaW50IGwyLGludCByMixsb25nIGxvbmcgaW50IG51bSl7CglpZihyMjxwMSB8fCBwMTxsMilyZXR1cm4gc2VnVFtub107CglpZihsMj09cjIpewoJCXNlZ1Rbbm9dPW51bTsKCQlyZXR1cm4gc2VnVFtub107Cgl9CglpbnQgbT0obDIrcjIpLzI7CglpZihsMjw9cDEgJiYgcDE8PW0pewoJCXNlZ1Rbbm9dPWZTZXQobm8qMisxLHAxLGwyLG0sbnVtKTsKCQlyZXR1cm4gc2VnVFtub107Cgl9ZWxzZXsKCQlsb25nIGxvbmcgaW50IHJlczE9c2VnVFtubyoyKzFdOwoJCWxvbmcgbG9uZyBpbnQgcmVzMj1mU2V0KG5vKjIrMixwMSxtKzEscjIsbnVtKTsKCQlpZihyZXMxPT0tMSB8fCByZXMyPT0tMSl7CgkJCXNlZ1Rbbm9dPS0xOwoJCX1lbHNlIGlmKHJlczE9PXJlczIpewoJCQlzZWdUW25vXT1yZXMxOwoJCX1lbHNlewoJCQlzZWdUW25vXT0tMTsKCQl9CgkJcmV0dXJuIHNlZ1Rbbm9dOwoJfQp9CmxvbmcgbG9uZyBpbnQgZkFkZChpbnQgbm8saW50IHAxLGludCBsMixpbnQgcjIsbG9uZyBsb25nIGludCBhZGQpewoJaWYocjI8cDEgfHwgcDE8bDIpcmV0dXJuIHNlZ1Rbbm9dOwoJaWYobDI9PXIyKXsKCQlzZWdUW25vXSs9YWRkOwoJCXJldHVybiBzZWdUW25vXTsKCX0KCWludCBtPShsMityMikvMjsKCWxvbmcgbG9uZyBpbnQgcmVzMT0tMTsKCWxvbmcgbG9uZyBpbnQgcmVzMj0tMTsKCWlmKGwyPD1wMSAmJiBwMTw9bSl7CgkJcmVzMT1mQWRkKG5vKjIrMSxwMSxsMixtLGFkZCk7CgkJcmVzMj1zZWdUW25vKjIrMl07Cgl9ZWxzZXsKCQlyZXMxPXNlZ1Rbbm8qMisxXTsKCQlyZXMyPWZBZGQobm8qMisyLHAxLG0rMSxyMixhZGQpOwoJfQoJaWYocmVzMT09LTEgfHwgcmVzMj09LTEpewoJCXNlZ1Rbbm9dPS0xOwoJfWVsc2UgaWYocmVzMT09cmVzMil7CgkJc2VnVFtub109cmVzMTsKCX1lbHNlewoJCXNlZ1Rbbm9dPS0xOwoJfQoJcmV0dXJuIHNlZ1Rbbm9dOwp9CmxvbmcgbG9uZyBpbnQgZkNoZWNrKGludCBubyxpbnQgbCxpbnQgcixpbnQgbDIsaW50IHIyLGxvbmcgbG9uZyBpbnQgcmVzQSl7CglpZihyMjxsIHx8IHI8bDIpcmV0dXJuIHJlc0E7CglpZihsMj09cjIpewoJCXJldHVybiBzZWdUW25vXTsKCX0KCWlmKGw8PWwyICYmIHIyPD1yKXsKCQlyZXR1cm4gc2VnVFtub107Cgl9ZWxzZXsKCQlpbnQgbT0obDIrcjIpLzI7CgkJbG9uZyBsb25nIGludCByZXMxPWZDaGVjayhubyoyKzEsbCxyLGwyLG0sc2VnVFtubyoyKzFdKTsKCQlsb25nIGxvbmcgaW50IHJlczI9ZkNoZWNrKG5vKjIrMixsLHIsbSsxLHIyLHNlZ1Rbbm8qMisyXSk7CgkJaWYocmVzMT09LTEgfHwgcmVzMj09LTEpewoJCQlyZXR1cm4gLTE7CgkJfWVsc2UgaWYocmVzMT09cmVzMil7CgkJCXJldHVybiByZXMxOwoJCX1lbHNlewoJCQlyZXR1cm4gLTE7CgkJfQoJfQp9CgoKCmludCBtYWluKCkgewoJaW50IG4sbTsKCWNpbj4+bj4+bTsKCW1lbXNldChzZWdULC0xLHNpemVvZihzZWdUKSk7Cglmb3IoaW50IGk9MDtpPG47aSsrKXsKCQlsb25nIGxvbmcgaW50IG51bTsKCQljaW4+Pm51bTsKCQlmU2V0KDAsaSwwLFIsbnVtKTsKCX0KCWZvcihpbnQgaT0wO2k8bTtpKyspewoJCWludCBjMTsKCQljaW4+PmMxOwoJCWlmKGMxPT0xKXsKCQkJaW50IHAxLGFkZDsKCQkJY2luPj5wMT4+YWRkOwoJCQlwMS0tOwoJCQlmQWRkKDAscDEsMCxSLGFkZCk7CgkJfWVsc2V7CgkJCWludCBsLHI7CgkJCWNpbj4+bD4+cjsKCQkJbC0tOwoJCQlyLS07CgkJCWlmKGZDaGVjaygwLGwsciwwLFIsc2VnVFswXSk9PS0xKXsKCQkJCWNvdXQ8PCJObyI8PGVuZGw7CgkJCX1lbHNlewoJCQkJY291dDw8IlllcyI8PGVuZGw7CgkJCX0KCQl9CgkJZm9yKGludCBpPTA7aTwxNTtpKyspewoJCQljb3V0PDwiKCI8PGk8PCIsIjw8c2VnVFtpXTw8IikiOwoJCX0KCQljb3V0PDxlbmRsOwoJfQoJCglyZXR1cm4gMDsKfQ==
stdout
No
(0,-1)(1,-1)(2,0)(3,-1)(4,-1)(5,0)(6,-1)(7,0)(8,1)(9,0)(10,1)(11,0)(12,-1)(13,-1)(14,-1)
(0,-1)(1,-1)(2,0)(3,-1)(4,1)(5,0)(6,-1)(7,0)(8,1)(9,1)(10,1)(11,0)(12,-1)(13,-1)(14,-1)
No
(0,-1)(1,-1)(2,0)(3,-1)(4,1)(5,0)(6,-1)(7,0)(8,1)(9,1)(10,1)(11,0)(12,-1)(13,-1)(14,-1)