어떤 양의 정수 의 이진 표현의 길이를 이라 하자.
길이가 인 비트열 이 주어진다. 각 는 어떤 양의 정수 에 대하여 를 만족한다.
양의 정수 에 대하여 다음 과정을 생각하자.
- 처음 수열 를 만든다.
- 수열 의 길이가 이 될 때까지 다음 연산을 반복한다.
- 현재 수열에서 서로 다른 두 위치를 고르고, 그 위치의 값을 각각 라 하자.
- 고른 두 원소를 제거하고, 를 수열의 뒤에 추가한다.
- 마지막으로 남은 원소를 라 하자.
두 원소를 고르는 방법은 임의이다. 이 문제에서 사용하는 의 홀짝성은 두 원소를 고르는 방법과 관계없이 동일함이 보장된다.
길이가 인 비트열 을 다음과 같이 정의한다.
또한 을 최상위 비트, 을 최하위 비트로 하는 이진수를 정수 라 하자. 정수 는
를 만족한다. 여기서 는 비트 단위 XOR 연산이다.
비트열 와 정수 가 주어질 때, 원래의 정수 을 구하여라.
Input
입력은 다음과 같은 형식으로 주어진다.
Output
첫째 줄에 원래의 정수 을 출력한다.
Constraints
- .
- ().
- .
- 입력은 이고 의 이진 표현의 길이가 인 원래의 정수 이 존재하도록 주어진다.
Subtasks
Samples
입력
3
0 1 0
3
출력
6
이므로 이고, 정수 는 이다.
따라서 이다.