A. 撰写博客

内存限制:512 MiB 时间限制:1000 ms 输入文件:wzadx.in 输出文件:wzadx.out
题目类型:传统 评测方式:文本比较

题目描述

小明发了一篇博客,由 n 个小写英文字母组成。

但是写完这篇博客之后,小明发现博客由于包含一些词语,被自动隐藏了。

具体地,这些词语有 m 个,分别为 T_1,T_2,…,T_m

小明发现,只要包含了其中某个词语,博客就会被自动隐藏。换言之,对于任意 1≤i≤m T_i 都不能是最终发表的博客 S 的子串。

于是小明决定在原来的博客 S 上把一部分字母替换成空格,使得它不再包含任何词语。

小明发现如果她把第 i 个字母替换成空格,那么整篇博客的价值会减少 a_i

小明想要知道,如何替换可以得到一篇不会被自动隐藏的博客,而价值的减少量最少。

值得一提的是,如果小明把一个字母替换成空格,那么与之相邻的两个字母也不会变得连续。

但是小明请你帮他求出价值的最少减少量。

输入格式

第一行两个正整数 n,m ,表示小明初始的博客长度以及词语个数。

第二行一个长度为 n 的,仅由小写字母组成的字符串 S ,表示小明初始的博客。

第三行 n 个空格隔开的整数 a_1,a_2,…,a_n ,其中第 i 个数 a_i 表示把第 i 个字母改成空格导致的整篇博客价值减少量。

接下来 m 行,每行一个仅由小写字母组成的字符串 T_i ,表示一个词语。

输出格式

输出一行一个整数表示整篇博客价值减少量的最小值。

样例

样例输入 1

5 3
abcde
3 1 3 1 3
abc
bcd
cde

样例输出 1

2

数据范围与提示

对于所有测试数据, 1≤n=|S|≤2×10^5 1≤m≤10 1≤|T_i |≤2×10^5 0≤a_i≤1000

子任务 1 20 分): |S|,|T_i |≤100

子任务 2 30 分): |S|,|T_i |≤2000

子任务 3 20 分): |S|,|T_i |≤5000

子任务 4 30 分):无特殊限制。