import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; public class Solution { 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]; 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(); if ( queryType == 1) { c[first] = second; } else { double solution = -(b / (double) a); double answer = 0.0; double[] powers = new double[second - first + 1]; double tempPower = 1.0; for (int i = 0; i <= second - first; i++) { powers[i] = tempPower; tempPower *= solution; tempPower %= 1000000007.0; } for (int i = first; i <= second; i++) { answer += ((double)c[i]) * powers[i - first]; answer %= 1000000007.0; } if (answer < 0.0000001) { System.out.println("Yes"); } else { System.out.println("No"); } } } } }