输入一条短信需要多少次按键?你可能认为这等于文本中的字符数,但这只有在一次按键产生一个字符时才成立。对于袖珍设备,输入文本的可能性往往受到限制。有些设备只提供几个按钮,远少于字母表中的字母数量。对于此类设备,输入单个字符可能需要多次按键。处理这些限制的一种机制是屏幕上显示的虚拟键盘,通过光标在按键之间移动来选择字符。四个方向键控制光标的移动,当光标定位在合适的按键上时,按下第五个按钮即可选择相应的字符并将其附加到文本末尾。要结束文本输入,用户必须导航到并选择 Enter 键。这为用户提供了一组任意字符,并使他们仅用五个硬件按钮就能输入任意长度的文本。
在本题中,给定一个虚拟键盘布局,你的任务是确定输入给定文本所需的最少按键次数,其中按下五个硬件按钮中的任意一个都算作一次按键。按键排列在一个矩形网格中,使得每个虚拟按键占据网格的一个或多个相连的单位正方形。光标从键盘的左上角开始,并沿四个基准方向移动,移动方式为:光标总是跳到该方向上属于不同按键的下一个单位正方形。如果该方向上没有这样的单位正方形,则光标不移动。
图 F.1:样例输入 1。一个虚拟键盘和硬件按钮的示例。
图 F.1 展示了样例输入 1,说明了在示例虚拟键盘上输入 CONTEST 的一种可能方式,共需 30 次按键。红点表示按下选择按钮的虚拟按键位置。
输入格式
输入的第一行包含两个整数 $r$ 和 $c$ ($1 \le r, c \le 50$),表示虚拟键盘网格的行数和列数。接下来的 $r$ 行指定了虚拟键盘,每行包含 $c$ 个字符。这些字符的可能值为大写字母、数字、连字符以及星号(代表 Enter)。每个字符对应唯一的按键。每个按键由一个或多个网格正方形组成,它们总是形成一个连通区域。输入的最后一行包含要输入的文本。该文本是一个非空字符串,最多包含 10 000 个除星号以外的可用字符。
输出格式
输出输入整个文本所需的最少按键次数,包括最后输入的 Enter 键。保证文本是可以输入的。
样例
输入 1
4 7 ABCDEFG HIJKLMN OPQRSTU VWXYZ** CONTEST
输出 1
30
输入 2
5 20 12233445566778899000 QQWWEERRTTYYUUIIOOPP -AASSDDFFGGHHJJKKLL* --ZZXXCCVVBBNNMM--** -------------------- ACM-ICPC-WORLD-FINALS-2015
输出 2
160
输入 3
2 19 ABCDEFGHIJKLMNOPQZY X*****************Y AZAZ
输出 3
19
输入 4
6 4 AXYB BBBB KLMB OPQB DEFB GHI* AB
输出 4
7