디지털 콘텐츠 보호

아직 제출이 없습니다시간 제한2초메모리 제한128 MB

문제

댄은 디지털 콘텐츠 보호 회사에서 일한다. 이 회사는 ACM(Anti Content Misuse) 표준에 맞춰 블루레이 디스크의 콘텐츠를 보호한다.

ACM 표준은 다음과 같이 동작한다. 블루레이 재생 장치가 2n2^n대 있다고 하자. 이 장치를 높이 nn인 완전 이진 트리의 잎에 하나씩 대응시키므로, 루트에서 잎까지 가는 경로는 모두 간선 nn개로 이루어진다. 트리의 각 노드 uu에는 식별 번호가 붙어 있고, 임의로 만든 키 kuk_u가 하나씩 들어 있다. 식별 번호는 이렇게 매긴다. 루트 rr의 번호는 11이고, 번호가 ii인 내부 노드의 왼쪽 자식은 2i2i, 오른쪽 자식은 2i+12i+1이다. 이 규칙을 쓰면 모든 노드가 서로 다른 번호를 받는다. 노드에 든 키는 사용자에게 공개되지 않지만 제조사는 알고 있다. 각 재생 장치의 번호는 그 장치에 대응하는 잎의 식별 번호 ii (2ni2n+112^n \le i \le 2^{n+1}-1)이다. 제조사는 루트에서 잎 ii까지 가는 경로에 있는 노드의 키를 모두 장치 ii에 심는다.

디스크의 콘텐츠를 암호화할 때 회사는 마스터 키라고 부르는 임의의 키 kk를 만든다. 먼저 kk를 루트의 키 krk_r로 암호화해서 디스크 헤더에 기록하고, 콘텐츠는 kk로 암호화해서 디스크에 기록한다. 재생 장치는 자신에게 심긴 krk_r로 헤더를 풀어 마스터 키 kk를 얻은 다음, 그 kk로 콘텐츠를 푼다.

그런데 재생 장치 집합 RR에 심긴 키가 해커에게 털려 인터넷에 공개됐다. 공개된 키로는 마스터 키를 암호화할 수 없다. 모든 장치에 krk_r가 들어 있으니 위의 방식은 더 이상 쓸 수 없다. ACM 표준은 이런 상황에 대비한 방법을 정해 두었다. 헤더가 길어지는 대신 새 디스크의 콘텐츠를 안전하게 암호화하는 방법이다. 아직 공개되지 않은 키의 집합 KK를 고르되, RR에 속하지 않은 장치라면 어느 것이든 KK에 속한 키를 적어도 하나 심고 있도록 고른다. 그리고 마스터 키 kkKK의 키 kk'마다 따로 암호화해서 헤더에 넣는다. 즉 헤더에는 암호문이 K|K|개 들어간다. 이렇게 하면 털리지 않은 장치는 헤더의 암호문 중 적어도 하나를 풀어 마스터 키 kk를 얻는다. K|K|가 작을수록 헤더가 짧아진다. 털린 장치의 번호가 주어질 때, 크기가 가장 작은 KK를 구해서 댄을 도와주자.

입력

입력은 테스트 케이스 하나로 이루어지고, 두 줄이다. 첫째 줄에 정수 nnR|R|이 주어진다. (1n621 \le n \le 62, 1R10001 \le |R| \le 1000) R|R|은 키가 공개된 장치의 집합 RR의 크기다. 둘째 줄에 키가 공개된 장치의 식별 번호 R|R|개가 주어진다. 털리지 않은 장치가 적어도 하나 있다.

출력

위 조건을 만족하면서 크기가 가장 작은 KK에 대해, KK의 키가 들어 있는 노드의 식별 번호를 증가하는 순서로 공백 하나씩 두고 출력한다. 조건을 만족하는 최소 크기의 KK는 하나뿐이다.