#include #include using namespace std; long long power(long long x , long long y , long long mod); int main() { long long n,a,b,q; cin >> n >> a >> b >> q; vector c(n+1); long long QX31 = (a*31 + b)%(1000000007); long long QX1e5 = (a*100007 + b)%(1000000007); for(int i=1;i<=n;i++){ cin >> c[i]; } set changesIndex; vector changesValues(n+1); while(q--){ long long op,l,x; cin >> op >> l >> x; if(op==1){ c[l] = x; changesIndex.insert(l); c[l] = x; } else{ long long val1 = 0,val2 =0; auto it = changesIndex.begin(); for(int i=l,j=0;i<=x;i++,j++){ long long coeff; if(changesIndex.count(i)!=0){ coeff = changesValues[i]; } else{ coeff = c[i]; } val1+=(c[i]*power(31,j,1000000007)); val2+=(c[i]*power(100007,j,1000000007)); } if(val1 == QX31 && val2 == QX1e5)cout << "Yes"; else cout << "No"; cout << endl; changesIndex.clear(); } } return 0; } long long power(long long x , long long y , long long mod){ if(y==0)return 1LL; if(y==1)return x; long long half = power(x,(y>>1),mod); long long ans = ((half%mod)*(half%mod))%mod; if(y&1){ return (ans*(x%mod))%mod; } return ans; }