#P005879. 回文串编辑

回文串编辑

题目描述

对于一个非空字符串 SS,如果将 SS 中的所有字符颠倒输出后和原字符串相同,则称 SS 为回文字符串。

例如,字符串 abaabcbaabccba,都是回文字符串。但字符串 abcabcbabcdba,均不是回文串。

给定一个由 NN 种不同的小写字母构成的长度为 LL 的字符串 SS

SS 可能不是回文串,允许对 SS 进行编辑,直到 SS 成为回文串,编辑方法有 22 种:

  • SS任意位置 增加一个小写字母 CC,增加一个小写字母 CC,需要付出的修改花费为 XCX_C
  • 删除 SS 中的一个小写字母 CC,删除一个小写字母 CC,需要付出的删除花费为 YCY_C

请编程计算出,将 SS 编辑为回文串的最小花费?

输入格式

11 行读入两个整数 NNLL

22 行读入长度为 LL 的字符串 SSSS 中仅含小写字母。

接下来 NN 行,每行读入一个小写字母 CC,以及两个整数 XCX_CYCY_C,分别代表增加一个小写字母 CC 和删除一个小写字母 CC 所需的花费。

输出格式

输出一个整数,代表将字符串 SS 编辑为回文串的最小花费。

样例

输入

3 4
efgf
e 50 80
f 30 60
g 10 65

输出

50

数据范围

对于 60%60\% 的数据,满足 1N101 \le N \le 101L101 \le L \le 10

对于 100%100\% 的数据,满足 1N261 \le N \le 261L2×1031 \le L \le 2 \times 10^30XC,YC1040 \le X_C, Y_C \le 10^4