수열에 구간 OR 갱신과 K와 같은 값의 개수를 세는 구간 질의를 처리한다.
길이가 N인 수열 A1, A2, ..., AN과 음이 아닌 정수 K가 주어진다. 이때, 다음 쿼리를 수행하는 프로그램을 작성하시오.
1 l r x : 모든 l ≤ i ≤ r에 대해, Ai를 Ai ∨ x로 바꾼다. (단, ∨는 bitwise OR 연산이다.)
1 l r x
2 l r : Ai = K를 만족하는 l ≤ i ≤ r의 개수를 출력한다.
2 l r
수열의 인덱스는 1부터 시작한다.
첫째 줄에 수열의 크기 N (1 ≤ N ≤ 250,000), K (0 ≤ K < 230)가 주어진다.
둘째 줄에는 A1, A2, ..., AN이 주어진다. (0 ≤ Ai < 230)
셋째 줄에는 쿼리의 개수 M (1 ≤ M ≤ 250,000)이 주어진다.
넷째 줄부터 M개의 줄에는 쿼리가 한 줄에 하나씩 주어진다. 2번 쿼리는 하나 이상 주어진다. (1 ≤ l ≤ r ≤ N, 0 ≤ x < 230)
각각의 2번 쿼리마다 정답을 한 줄에 하나씩 출력한다.