#L2063. 「HAOI2016」字符合并

「HAOI2016」字符合并

题目描述

有一个长度为 nn01 串,你可以每次将相邻的 kk 个字符合并,得到一个新的字符并获得一定分数。
得到的新字符和分数由这 kk 个字符确定。你需要求出你能获得的最大分数。


输入格式

第一行两个整数 n,kn, k
第二行一个长度为 nn 的 01 串,表示初始串。
接下来 2k2^k 行,每行一个字符 cic_i 和一个整数 wiw_i
cic_i 表示长度为 kk 的 01 串(按二进制从小到大顺序)得到的第 ii 种合并方案得到的新字符,wiw_i 表示对应的第 ii 种方案获得的分数。


输出格式

输出一个整数,表示答案。


样例

输入:

3 2
101
1 10
1 10
0 20
1 30

输出:

40

第三行到第六行表示长度为 22 的四种 01 串合并方案。

  • 00100 \rightarrow 1,得 1010
  • 01101 \rightarrow 1,得 1010
  • 10010 \rightarrow 0,得 2020
  • 11111 \rightarrow 1,得 3030

数据范围与提示

1n3001 \le n \le 300
0ci10 \le c_i \le 1
0wi1090 \le w_i \le 10^9 2k82 \le k \le 8