시간 제한
메모리 제한
시간 제한
1초
메모리 제한
128 MB
Linas는 독특한 관악기를 연주한다. 이 악기에는 구멍이 S개 있으며, Linas는 1번부터 N번까지 번호가 매겨진 서로 다른 음 N개를 낼 수 있다. 각 음은 모든 구멍을 특정한 방식으로 막아서 내며, 이는 S개의 숫자로 이루어진 수열로 표현된다. j번째 숫자는 j번째 구멍을 막는 방법을 나타내고, 막는 방법은 0부터 9까지 10가지 중 하나이다. 어떤 음에도 해당하지 않는 방식으로 구멍을 막으면 악기가 불쾌한 소리를 내므로, Linas는 항상 어떤 유효한 음에 해당하도록 구멍을 막는다.
Linas는 L개의 음으로 이루어진 곡을 연주하려고 한다. 그러나 그는 완벽하지 않다. 다음 음이 현재 음과 최대 G개의 구멍에서만 다를 때(즉 두 음의 숫자 수열이 서로 다른 위치가 최대 G개일 때)에만 이어서 연주할 수 있다. 이 때문에 그는 때때로 악보에 적힌 음과 다른 음을 연주해야 한다. 실제로 연주한 음이 악보에 적힌 음과 다른 위치를 각각 실수라고 부른다.
주어진 악보에 대해, 이웃한 두 음이 항상 최대 G개의 구멍에서만 다르도록 하면서 실수의 개수를 최소로 만드는, 실제로 연주할 음들을 정하라.
첫째 줄에 세 정수 N, S, G가 주어진다 (1≤N≤100, 0≤G<S≤100). 각각 음의 개수, 구멍의 개수, 이웃한 두 음 사이에서 바꿀 수 있는 구멍의 최대 개수이다.
다음 N개의 줄에는 각 음이 공백 없이 S개의 숫자로 주어진다. j번째 숫자는 그 음에서 j번째 구멍을 막는 방법이며 0부터 9까지의 값이다. 서로 같은 음은 없다.
그다음 줄에는 곡의 길이 L이 주어진다 (1≤L≤105).
마지막 줄에는 악보의 음이 순서대로 1 이상 N 이하의 정수 L개로, 공백으로 구분되어 주어진다.
두 줄을 출력한다.
첫째 줄에는 실수의 최소 개수인 음이 아닌 정수 하나를 출력한다.
둘째 줄에는 이 최소 실수 개수를 달성하는, 이웃한 두 음이 항상 최대 G개의 구멍에서만 다른 유효한 곡을 이루는 음 L개를 공백으로 구분하여 출력한다. 그러한 곡이 여러 개이면, 음 번호의 수열로 비교했을 때 사전순으로 가장 앞서는 것을 출력한다.