Logo HelloWorld信息学奥赛题库

少儿编程

时间限制:N/A 空间限制:N/A

#3992. 「BalticOI 2012 Day2」旋律

统计

题目描述

译自 BalticOI 2012 Day2 T2. Melody

Linas 喜欢弹奏一种乐器,然而没人知道这种乐器的名字。这个乐器有 $S$ 个孔,Linas 可以以十种不同的方式(从 $0$ 到 $9$ 编号)之一盖住每个孔,从而弹奏出不同的音符。这种乐器可以弹奏出 $N$ 种音符,每个音符对应一种盖住孔的方式。如果一种盖住孔的方式不与任何音符对应,乐器会发出非常糟糕的声音,因此 Linas 从来不会尝试不与已有音符对应的盖住孔的方式。

现在 Linas 所在的乐队要演奏一首乐曲。Linas 已经将这个乐曲对应的音符写了出来。不幸地是,Linas 的表现并不理想。他能弹出两个连续的音符,当且仅当这两个音符有不超过 $G$ 个孔的覆盖方式不同。现在 Linas 希望自己演奏的错误音符的数量尽可能少。

输入格式

第一行三个整数 $N,S,G$。

接下来 $N$ 行,每行一个长度 $S$ 的字符串(只包括数字),第 $i$ 行的第 $j$ 个字符表示弹奏第 $i$ 个音符时,第 $j$ 个孔的覆盖方式。保证任意两个音符的弹奏方式不同。

下一行一个整数 $L$,代表乐曲包含的音符数。

最后一行包含 $L$ 个整数,代表乐曲对应的音符编号。

输出格式

输出第一行一个整数,代表 Linas 演奏的错误音符的最小值。

下一行 $L$ 个整数,代表在错误音符的数目最小的前提下,Linas 实际弹奏的音符。如果有多种满足条件的弹奏方式,任意输出一种即可。

样例

input

5 4 2
1111
2101
2000
0100
0000
7
1 5 4 5 3 2 1

output

1
1 2 4 5 3 2 1

音符 $1$ 和音符 $5$ 在四个孔上的弹奏方式都不同,因此 Linas 不能在弹奏完音符 $1$ 后弹奏音符 $5$。

数据范围与提示

  • 对于 $40\%$ 的数据,$L \leq 100$;
  • 对于 $65\%$ 的数据,$L \leq 5000$;
  • 对于 $100\%$ 的数据,$1 \leq N \leq 100$,$0 \leq G \lt S \leq 100$,$1 \leq L \leq 10^5$。