#1574. 陷阱----nb3303

陷阱----nb3303

Background

给定一个nmn*m 的网格地图,格子有三种情况:

  1. ‘.’表示空,可以正常通行
  2. ‘#’表示有墙,不能通行
  3. 大写英文字母A(A~ZZ)表示有陷阱,可以通行,但经过会扣一定的血量,并且不会消失

一共有kk 个陷阱(编号从AA 开始,ABCDE...ABCDE...),k<=26k<=26,并且给定起点,终点,

和初始血量HH,行走方向只有上下左右四个方向,注意在行走过程中不能有任意

时刻的血量小于等于00。输出到达终点的最大血量。

Input

输入一共有n+k+2n+k+2 行,

第一行依次为n,m,k,Hn, m, k, H。其中n100m100,k26,H200n≤100,m≤100, k≤26, H≤200

第二行44个整数,表示起点的行、列坐标和终点的行、列坐标。棋盘从左往右依次是1m1…m 列,从上倒下依次是1n1…n 行。数据保证起点和终点所在的格子都是空的。

接下来nn 行,每行一个长度为mm 的字符串,表示棋盘的情况。'.'表示为空,'#'表示为墙,'A-Z' 的字符表示陷阱的种类。

接下来kk

接下来的第11 行,一个数表示AA 代表的陷阱扣多少血;

接下来的第22 行,一个数表示BB 代表的陷阱扣多少血;

……

接下来的第kk 行...

以此类推,扣的血量小于等于200200

Output

输出共一行,表示到达终点最后最多剩下多少血。如果不能到终点,则输出1-1

Samples

5 5 2 15
1 1 5 4
....A
####.
.....
###B#
.....
9
3
3
5 5 2 10
1 1 5 4
....A
####.
.....
###B#
.....
9
3
-1

Limitation

【数据规模】

3030%的数据,n<10,m<10,k=0n<10, m<10, k=0。

7070%的数据,n<10,m<10,k<10n<10, m<10, k<10。

100100%的数据,n100m100,k26n≤100,m≤100, k≤26。

注意:起点和终点都是给定的