write a go solution for Description: You have an array a consisting of n positive integers and you have to handle q queries of the following types: - 1 i x: change a_i to x, - 2 l r k: check if the number of occurrences of every positive integer in the subarray a_l,a_l+1,ldotsa_r is a multiple of k (check the example for better understanding). Input Format: The first line of the input contains two integers n and q (1<=n,q<=3*10^5), the length of a and the number of queries. Next line contains n integers a_1,a_2,ldotsa_n (1<=a_i<=10^9) — the elements of a. Each of the next q lines describes a query. It has one of the following forms. - 1 i x, (1<=i<=n , 1<=x<=10^9), or - 2 l r k, (1<=l<=r<=n , 1<=k<=n). Output Format: For each query of the second type, if answer of the query is yes, print "YES", otherwise print "NO". Note: In the first query, requested subarray is [1234,2,3,3,2,1], and it's obvious that the number of occurrence of 1 isn't divisible by k=2. So the answer is "NO". In the third query, requested subarray is [1,2,3,3,2,1], and it can be seen that the number of occurrence of every integer in this sub array is divisible by k=2. So the answer is "YES". In the sixth query, requested subarray is [1,2,3,3,2,1,1,2,3], and it can be seen that the number of occurrence of every integer in this sub array is divisible by k=3. So the answer is "YES".. Output only the code with no comments, explanation, or additional text.