MEX vs OR

시간 제한2초메모리 제한1024 MB

문제

음이 아닌 정수로 구성된 수열 $a$가 주어질 때, 함수 $\text{mex}(a)$는 $a$에 포함되지 않은 가장 작은 음이 아닌 정수를 의미합니다.

$\text{mex}$에 수열을 대입한 예시에는 다음이 있습니다.

  • $\text{mex}([1,2,3,4,5])=0$
  • $\text{mex}([0,1,2,3,4])=5$
  • $\text{mex}([0,1,2,4,5])=3$

음이 아닌 두 정수 $x$와 $y$가 주어질 때, $x\,|\,y$를 $x$와 $y$의 비트 OR이라고 부르며, 다음의 규칙에 따라 정의합니다.

  • 2진법에서 $x$와 $y$ 중 적어도 하나의 $i$번째 자리가 $1$이라면 $x\,|\,y$의 $i$번째 자리가 $1$입니다.
  • 2진법에서 $x$와 $y$ 둘 모두 $i$번째 자리가 $0$이라면 $x\,|\,y$의 $i$번째 자리가 $0$입니다.

두 정수의 비트 OR을 구한 예시에는 다음이 있습니다.

  • $2\,|\,4=010_2\,|\,100_2=110_2=6$
  • $3\,|\,6=011_2\,|\,110_2=111_2=7$
  • $5\,|\,4=101_2\,|\,100_2=101_2=5$

$l \le r$을 만족하는 음이 아닌 세 정수 $l$, $r$, $x$가 주어집니다. 여러분은 다음 수식의 값을 구해야 합니다.

$$\text{mex}([(l\,|\,x),((l+1)\,|\,x),\cdots,((r-1)\,|\,x),(r\,|\,x)])$$

입력

한 줄에 세 정수 $l$, $r$, $x$가 공백으로 구분되어 주어집니다. ($0 \le l \le r \le 1\,000$, $0 \le x \le 1\,000$)

출력

한 줄에 문제의 정답을 출력합니다.

힌트

대부분의 언어에서 음이 아닌 두 정수 $x$와 $y$의 비트 OR $x\,|\,y$는 연산자 |를 사용하여 (x|y)와 같이 구할 수 있습니다.