공책
시간 제한1초메모리 제한128 MB
짝수는 2로 나누고 임의의 두 수는 xor할 수 있는 연산으로 닫힌 집합에서 만들 수 있는 가장 작은 값을 구하고, 갱신이 있는 구간 질의에 답한다.
문제
Ivan은 공책에 숫자를 적는다. 처음에 정수 집합 가 공책에 적혀 있다. 그다음부터는 다음 연산으로 공책에 새 숫자를 적을 수 있다.
- 가 적혀 있으면 를 적을 수 있다.
- 가 적혀 있고 가 로 나누어떨어지면 를 적을 수 있다.
- 서로 다른 두 수 와 가 적혀 있으면 를 적을 수 있다.
시작 집합 에 대해 Ivan이 공책에 적을 수 있는 가장 작은 수를 라고 하자.
길이가 인 배열과 개의 질의가 주어진다. 각 질의는 다음 중 하나다.
- 의 값을 로 바꾼다.
- 의 값을 구한다.
입력
첫째 줄에 이 주어진다 (). 은 배열의 길이이다.
둘째 줄에 개의 정수 이 주어진다 (). 이는 배열 의 원소이다.
셋째 줄에 가 주어진다 (). 는 질의의 수이다.
다음 개의 줄에 질의가 주어진다. 질의는 " " 형식으로 ()를 ()로 바꾸라는 것일 수도 있고, " " 형식으로 의 값을 구하라는 것일 수도 있다 ().
출력
두 번째 형식의 질의마다 의 값을 한 줄에 출력한다.