3080 - 最便宜的回文名

通过次数

0

提交次数

0

时间限制 : 1 秒
内存限制 : 128 MB

农民约翰通过一个自动化系统跟踪奶牛的位置。他在每头奶牛身上安装了一张电子身份标签,当奶牛经过扫描仪时,系统会读取该标签。每个ID标签的内容目前都是一个长度为M(1≤M≤2000)个字符的字符串,这些字符保证都是小写字符。

奶牛是淘气的动物,有时会试图通过倒退来欺骗扫描仪。约翰想调整奶牛的ID标签使得每个标签都是一个回文串,这样无论奶牛走哪个方向,它们的读数都是一样的。

给定一个由 n 个不同的小写字母构成的长 m 的字符串 s。可以通过\bm{s} 的任意位置增减字母将 s 改为回文串。增减字母的花费不同,求最小花费。

输入

1 行是两个整数 n,m

2 行是字符串 s

接下 n 行,每行一个字符 c 和两个整数 x,y,表示添加一个 c 的花费为 x,删除一个 c 的花费为 y

输出

只有一个数字,表示最小花费。

样例

输入

3 4
abcb
a 1000 1100
b 350 700
c 200 800

输出

900

提示

对于 100\% 的数据,1\le m\le2\times10^3,1\le n\le 26,0\le x,y\le 10^4

样例解释:如果在字符串最后添加一个字符'a',那么花费是1000。如果删除开头的字符'a'则花费的更多。最便宜的方案是在字符串的开头添加三个字符"bcb",花费为350 × 2 +200 =900

来源

USCAO