문제
길이가 같은 두 개의 이진수 코드
이 두 코드 사이의 해밍 거리(Hamming distance)는
예를 들어,
KOI 연구소는 특정 암호문에서 사용되는 총 N개의 이진 코드를 가지고 있다. 각 코드의 길이는 K로 일정하다.
연구소는 이 코드들에 대해 여러 가지 특징을 분석하고 있다. 예를 들어, 다음과 같이 길이가 3인 5개의 이진 코드들이 있다고 하자.
두 코드
그러면,
당신은 이진 코드들에 대해 해밍 경로(Hamming path)를 찾고자한다.
해밍 경로는 모든 인접한 두 코드사이의 해밍 거리가 1인 경로이다.
위의 예에서 (
두 코드 사이에 해밍 경로가 여러 개가 있을 경우 가장 짧은 경로를 찾고자 한다.
이 문제는 1번 코드에서부터 질의로 주어진 여러 개의 코드까지의 해밍 경로를 각각 구하는 프로그램을 작성하는 것이다.
입력
첫째 줄에는 두 개의 정수
둘째 줄부터
하나의 코드는 빈칸이 없이 주어진다. 코드들은 주어진 순서대로 1부터
코드가 같은 경우는 없다. 그 다음 줄에는 해밍 경로를 찾고자하는 질의의 수인 하나의 정수
그 다음
출력
출력은
만일 두 코드 사이에 해밍 경로가 존재하면 가장 짧은 경로에 있는 코드들의 번호를 1번 코드부터 차례로 하나의 빈칸을 사이에 두고 출력한다.
답이 여러 개 있으면 그 중에 하나만 출력하고, 경로가 존재하지 않으면 -1을 출력한다.
예제1
53
000
111
010
110
001
2
4
2
13 4
1 3 4 2