import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; public class Solution { /*public static int getGCD(int a, int b) { if(a==0||b==0) return a+b; else getGCD(a, a%b); }*/ public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int a = in.nextInt(); int b = in.nextInt(); int q = in.nextInt(); int[] c = new int[n]; //int gcd = getGCD(a, b); //a /= gcd; //b /= gcd; for(int c_i=0; c_i < n; c_i++){ c[c_i] = in.nextInt(); } for(int a0 = 0; a0 < q; a0++){ int queryType = in.nextInt(); int first = in.nextInt(); int second = in.nextInt(); // your code goes here if(queryType == 1) { c[first] = second; } else if (queryType == 2) { long sumOfFractions = 0; for(int c_i=first; c_i <= second; c_i++){ sumOfFractions += c[c_i] * Math.pow((double)-b/a, c_i-first); } if (sumOfFractions == 0) System.out.println("Yes"); else System.out.println("No"); } else { System.out.println("Invalid query type."); } } } }