건우는 현재 번 집에 있고, 번 집으로 이동하려고 한다.
건우는 집 사이를 이동하기 위해 텔레포트 장치를 사용할 수 있다. 이 장치에는 개의 버튼이 있으며, 번 버튼에는 정수 가 적혀 있다.
건우가 현재 번 집에 있을 때 번 버튼을 누르면, 건우는 번 집으로 이동한다. 여기서 는 bitwise OR 연산을 의미한다.
건우는 이 장치를 최대 번 사용할 수 있다. 건우가 번 집에서 번 집으로 이동할 수 있는지 판단하고, 가능하다면 눌러야 하는 버튼의 순서를 구하여라.
Input
첫 번째 줄에는 정수 가 공백으로 구분되어 주어진다.
두 번째 줄에는 개의 정수 이 공백으로 구분되어 주어진다.
Output
만약 건우가 번 집에서 번 집으로 갈 수 있으면, 첫 번째 줄에 장치를 사용할 횟수 를 출력하고 두 번째 줄에는 누를 버튼의 번호를 순서대로 출력한다.
갈 수 없는 경우에는 -1을 출력한다.
단, 는 이상 이하의 정수여야 하며, 가능한 답이 여러 가지라면 아무거나 출력해도 된다.
Constraints
Subtasks
Samples
예제 1
입력
3 1 7
2 4 3
출력
2
1 2
처음에는 번 집에 있다.
1번 버튼을 누르면 이므로 3번 집으로 이동한다.
2번 버튼을 누르면 이므로 7번 집으로 이동한다.
예제 2
입력
2 1 4
4 2
출력
-1
처음 위치 에서 이미 켜져 있는 비트가 에는 켜져 있지 않다. bitwise OR 연산으로는 이 비트를 다시 끌 수 없으므로 불가능하다.
예제 3
입력
1 5 5
1
출력
0
처음부터 번 집에 있으므로 버튼을 누르지 않아도 된다.
해설
관리자가 작성한 해설을 별도 페이지에서 볼 수 있어요.