댄은 디지털 콘텐츠 보호 회사에서 일한다. 이 회사는 ACM(Anti Content Misuse) 표준에 맞춰 블루레이 디스크의 콘텐츠를 보호한다.
ACM 표준은 다음과 같이 동작한다. 블루레이 재생 장치가 2n대 있다고 하자. 이 장치를 높이 n인 완전 이진 트리의 잎에 하나씩 대응시키므로, 루트에서 잎까지 가는 경로는 모두 간선 n개로 이루어진다. 트리의 각 노드 u에는 식별 번호가 붙어 있고, 임의로 만든 키 ku가 하나씩 들어 있다. 식별 번호는 이렇게 매긴다. 루트 r의 번호는 1이고, 번호가 i인 내부 노드의 왼쪽 자식은 2i, 오른쪽 자식은 2i+1이다. 이 규칙을 쓰면 모든 노드가 서로 다른 번호를 받는다. 노드에 든 키는 사용자에게 공개되지 않지만 제조사는 알고 있다. 각 재생 장치의 번호는 그 장치에 대응하는 잎의 식별 번호 i (2n≤i≤2n+1−1)이다. 제조사는 루트에서 잎 i까지 가는 경로에 있는 노드의 키를 모두 장치 i에 심는다.
디스크의 콘텐츠를 암호화할 때 회사는 마스터 키라고 부르는 임의의 키 k를 만든다. 먼저 k를 루트의 키 kr로 암호화해서 디스크 헤더에 기록하고, 콘텐츠는 k로 암호화해서 디스크에 기록한다. 재생 장치는 자신에게 심긴 kr로 헤더를 풀어 마스터 키 k를 얻은 다음, 그 k로 콘텐츠를 푼다.
그런데 재생 장치 집합 R에 심긴 키가 해커에게 털려 인터넷에 공개됐다. 공개된 키로는 마스터 키를 암호화할 수 없다. 모든 장치에 kr가 들어 있으니 위의 방식은 더 이상 쓸 수 없다. ACM 표준은 이런 상황에 대비한 방법을 정해 두었다. 헤더가 길어지는 대신 새 디스크의 콘텐츠를 안전하게 암호화하는 방법이다. 아직 공개되지 않은 키의 집합 K를 고르되, R에 속하지 않은 장치라면 어느 것이든 K에 속한 키를 적어도 하나 심고 있도록 고른다. 그리고 마스터 키 k를 K의 키 k′마다 따로 암호화해서 헤더에 넣는다. 즉 헤더에는 암호문이 ∣K∣개 들어간다. 이렇게 하면 털리지 않은 장치는 헤더의 암호문 중 적어도 하나를 풀어 마스터 키 k를 얻는다. ∣K∣가 작을수록 헤더가 짧아진다. 털린 장치의 번호가 주어질 때, 크기가 가장 작은 K를 구해서 댄을 도와주자.
입력은 테스트 케이스 하나로 이루어지고, 두 줄이다. 첫째 줄에 정수 n과 ∣R∣이 주어진다. (1≤n≤62, 1≤∣R∣≤1000) ∣R∣은 키가 공개된 장치의 집합 R의 크기다. 둘째 줄에 키가 공개된 장치의 식별 번호 ∣R∣개가 주어진다. 털리지 않은 장치가 적어도 하나 있다.
위 조건을 만족하면서 크기가 가장 작은 K에 대해, K의 키가 들어 있는 노드의 식별 번호를 증가하는 순서로 공백 하나씩 두고 출력한다. 조건을 만족하는 최소 크기의 K는 하나뿐이다.