题目描述
有 n 个糖果排成一行。第 i 个糖果有一个类型 Si∈[1,k]。
你可以执行若干次如下操作:
任选 1≤i<n,若 ASi,Si+1=1,则将第 i+1 个糖果扔掉。注意此操作结束后,当前序列长度会变为原来的长度减 1。
你需要最小化最终序列 S 的字典序。
输入格式
第一行两个整数 k,n。
接下来 k 行,每行一个长度为 k 的 01 字符串。第 i 行第 j 列的字符表示 Ai,j。
接下来一行一个长度为 n 的字符串 s。若 si 为第 j 个小写英文字母,则表示 Si=j。
输出格式
输出一个字符串,表示可以通过操作得到的字典序最小的 S。字符串的第 i 位为第 j 个小写英文字母当且仅当 Si=j。
样例 1 输入
3 7
010
001
100
abacaba
样例 1 输出
aac
样例 2 输入
3 5
010
001
100
bcacb
样例 2 输出
bacb
数据范围与约定
测试数据保证:
1≤n≤5×105,1≤k≤26.
| 子任务编号 |
特殊性质 |
分值 |
| 1 |
n≤20 |
8 |
| 2 |
n≤50, k≤5 |
12 |
| 3 |
n≤300, k≤5 |
16 |
| 4 |
n≤500 |
| 5 |
n≤2000 |
12 |
| 6 |
n≤104 |
8 |
| 7 |
n≤105 |
| 8 |
n≤5×105, k≤2 |
12 |
| 9 |
n≤5×105 |
8 |