#include <iostream>
#include <string.h>
using namespace std;
long long int segT[1200000];
int R=262143;
long long int ans;
void fSet(int no,int p1,int l2,int r2,long long int num){
if(r2<p1 || p1<l2)return ;
if(l2==r2){
segT[no]=num;
return ;
}
int m=(l2+r2)/2;
if(l2<=p1 && p1<=m){
fSet(no*2+1,p1,l2,m,num);
}else{
fSet(no*2+2,p1,m+1,r2,num);
}
return ;
}
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){
if(ans==-2){
ans=segT[no];
}else if(ans!=segT[no]){
ans=-1;
}
//cout<<"("<<no<<" "<<ans<<","<<l2<<","<<r2<<","<<segT[no]<<")"<<endl;
return segT[no];
}
if(l<=l2 && r2<=r){
if(ans==-2){
ans=segT[no];
}else if(ans!=segT[no]){
ans=-1;
}
//cout<<no<<" "<<ans<<"("<<l2<<","<<r2<<","<<segT[no]<<")"<<endl;
return segT[no];
}else{
int m=(l2+r2)/2;
long long int res1=fCheck(no*2+1,l,r,l2,m,segT[no*2+2]);
long long int res2=fCheck(no*2+2,l,r,m+1,r2,segT[no*2+1]);
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<n;i++){
fAdd(0,i,0,R,0);
}
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--;
ans=-2;
fCheck(0,l,r,0,R,segT[0]);
if(ans==-1){
cout<<"No"<<endl;
}else{
cout<<"Yes"<<endl;
}
}
//for(int i=0;i<15;i++){
// cout<<"("<<i<<","<<segT[i]<<")";
//}
//cout<<endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpsb25nIGxvbmcgaW50IHNlZ1RbMTIwMDAwMF07CmludCBSPTI2MjE0MzsKbG9uZyBsb25nIGludCBhbnM7CnZvaWQgZlNldChpbnQgbm8saW50IHAxLGludCBsMixpbnQgcjIsbG9uZyBsb25nIGludCBudW0pewoJaWYocjI8cDEgfHwgcDE8bDIpcmV0dXJuIDsKCWlmKGwyPT1yMil7CgkJc2VnVFtub109bnVtOwoJCXJldHVybiA7Cgl9CglpbnQgbT0obDIrcjIpLzI7CglpZihsMjw9cDEgJiYgcDE8PW0pewoJCWZTZXQobm8qMisxLHAxLGwyLG0sbnVtKTsKCX1lbHNlewoJCWZTZXQobm8qMisyLHAxLG0rMSxyMixudW0pOwoJfQoJcmV0dXJuIDsKfQpsb25nIGxvbmcgaW50IGZBZGQoaW50IG5vLGludCBwMSxpbnQgbDIsaW50IHIyLGxvbmcgbG9uZyBpbnQgYWRkKXsKCWlmKHIyPHAxIHx8IHAxPGwyKXJldHVybiBzZWdUW25vXTsKCQoJaWYobDI9PXIyKXsKCQlzZWdUW25vXSs9YWRkOwoJCXJldHVybiBzZWdUW25vXTsKCX0KCWludCBtPShsMityMikvMjsKCWxvbmcgbG9uZyBpbnQgcmVzMT0tMTsKCWxvbmcgbG9uZyBpbnQgcmVzMj0tMTsKCWlmKGwyPD1wMSAmJiBwMTw9bSl7CgkJcmVzMT1mQWRkKG5vKjIrMSxwMSxsMixtLGFkZCk7CgkJcmVzMj1zZWdUW25vKjIrMl07Cgl9ZWxzZXsKCQlyZXMxPXNlZ1Rbbm8qMisxXTsKCQlyZXMyPWZBZGQobm8qMisyLHAxLG0rMSxyMixhZGQpOwoJfQoJaWYocmVzMT09LTEgfHwgcmVzMj09LTEpewoJCXNlZ1Rbbm9dPS0xOwoJfWVsc2UgaWYocmVzMT09cmVzMil7CgkJc2VnVFtub109cmVzMTsKCX1lbHNlewoJCXNlZ1Rbbm9dPS0xOwoJfQoJcmV0dXJuIHNlZ1Rbbm9dOwp9CmxvbmcgbG9uZyBpbnQgZkNoZWNrKGludCBubyxpbnQgbCxpbnQgcixpbnQgbDIsaW50IHIyLGxvbmcgbG9uZyBpbnQgcmVzQSl7CglpZihyMjxsIHx8IHI8bDIpcmV0dXJuIHJlc0E7CglpZihsMj09cjIpewoJCQoJCWlmKGFucz09LTIpewoJCQlhbnM9c2VnVFtub107CgkJfWVsc2UgaWYoYW5zIT1zZWdUW25vXSl7CgkJCWFucz0tMTsKCQl9CgkJLy9jb3V0PDwiKCI8PG5vPDwiICI8PGFuczw8IiwiPDxsMjw8IiwiPDxyMjw8IiwiPDxzZWdUW25vXTw8IikiPDxlbmRsOwoJCXJldHVybiBzZWdUW25vXTsKCX0KCWlmKGw8PWwyICYmIHIyPD1yKXsKCQkKCQlpZihhbnM9PS0yKXsKCQkJYW5zPXNlZ1Rbbm9dOwoJCX1lbHNlIGlmKGFucyE9c2VnVFtub10pewoJCQlhbnM9LTE7CgkJfQoJCS8vY291dDw8bm88PCIgIjw8YW5zPDwiKCI8PGwyPDwiLCI8PHIyPDwiLCI8PHNlZ1Rbbm9dPDwiKSI8PGVuZGw7CgkJcmV0dXJuIHNlZ1Rbbm9dOwoJfWVsc2V7CgkJaW50IG09KGwyK3IyKS8yOwoJCWxvbmcgbG9uZyBpbnQgcmVzMT1mQ2hlY2sobm8qMisxLGwscixsMixtLHNlZ1Rbbm8qMisyXSk7CgkJbG9uZyBsb25nIGludCByZXMyPWZDaGVjayhubyoyKzIsbCxyLG0rMSxyMixzZWdUW25vKjIrMV0pOwoJCWlmKHJlczE9PS0xIHx8IHJlczI9PS0xKXsKCQkJcmV0dXJuIC0xOwoJCX1lbHNlIGlmKHJlczE9PXJlczIpewoJCQlyZXR1cm4gcmVzMTsKCQl9ZWxzZXsKCQkJcmV0dXJuIC0xOwoJCX0KCX0KfQoKCgppbnQgbWFpbigpIHsKCWludCBuLG07CgljaW4+Pm4+Pm07CgltZW1zZXQoc2VnVCwtMSxzaXplb2Yoc2VnVCkpOwoJZm9yKGludCBpPTA7aTxuO2krKyl7CgkJbG9uZyBsb25nIGludCBudW07CgkJY2luPj5udW07CgkJZlNldCgwLGksMCxSLG51bSk7Cgl9Cglmb3IoaW50IGk9MDtpPG47aSsrKXsKCQlmQWRkKDAsaSwwLFIsMCk7Cgl9CgkKCWZvcihpbnQgaT0wO2k8bTtpKyspewoJCWludCBjMTsKCQljaW4+PmMxOwoJCWlmKGMxPT0xKXsKCQkJaW50IHAxLGFkZDsKCQkJY2luPj5wMT4+YWRkOwoJCQlwMS0tOwoJCQlmQWRkKDAscDEsMCxSLGFkZCk7CgkJfWVsc2V7CgkJCWludCBsLHI7CgkJCWNpbj4+bD4+cjsKCQkJbC0tOwoJCQlyLS07CgkJCWFucz0tMjsKCQkJZkNoZWNrKDAsbCxyLDAsUixzZWdUWzBdKTsKCQkJaWYoYW5zPT0tMSl7CgkJCQljb3V0PDwiTm8iPDxlbmRsOwoJCQl9ZWxzZXsKCQkJCWNvdXQ8PCJZZXMiPDxlbmRsOwoJCQl9CgkJfQoJCS8vZm9yKGludCBpPTA7aTwxNTtpKyspewoJCS8vCWNvdXQ8PCIoIjw8aTw8IiwiPDxzZWdUW2ldPDwiKSI7CgkJLy99CgkJLy9jb3V0PDxlbmRsOwoJfQoJCglyZXR1cm4gMDsKfQ==