#include<cstdio>

#define rep(i,n) for(int i=0;i<(n);i++)

using namespace std;

const int dx[]={1,0,-1,0},dy[]={0,-1,0,1};

struct edge{ int x1,y1,x2,y2,cost; };

int h,w,d;
int sig[20][20]; // 交差点 [y][x] にある信号の周期
int n_ban,n_jam;
edge ban[500],jam[500];
int sx,sy,gx,gy;

int solve(){
	static bool dp[101][20][20][4];
	rep(t,101) rep(i,h) rep(j,w) rep(k,4) dp[t][i][j][k]=false;
	dp[0][sy][sx][0]=true;
	rep(t,101) rep(i,h) rep(j,w) rep(k,4) {
		if(!dp[t][i][j][k]) continue;
		if(sig[i][j]!=0 && t/sig[i][j]%2==k%4) continue; // 信号が赤ならそこで打ち止め

		rep(k2,4) if((k-k2+4)%4!=2) { // k2 方向に進む
			int i2=i+dy[k2],j2=j+dx[k2];
			if(0<=i2 && i2<h && 0<=j2 && j2<w){
				// 道路が封鎖されていたらそこで打ち止め
				bool isban=false;
				rep(l,n_ban){
					if(ban[l].x1==j && ban[l].y1==i && ban[l].x2==j2 && ban[l].y2==i2
					|| ban[l].x2==j && ban[l].y2==i && ban[l].x1==j2 && ban[l].y1==i2) isban=true;
				}
				if(isban) continue;

				int t_jam=0;
				rep(l,n_jam){
					if(jam[l].x1==j && jam[l].y1==i && jam[l].x2==j2 && jam[l].y2==i2
					|| jam[l].x2==j && jam[l].y2==i && jam[l].x1==j2 && jam[l].y1==i2) t_jam=jam[l].cost;
				}

				int t_next=t+d+t_jam;
				if(t_next<=100){
					dp[t_next][i2][j2][k2]=true;
				}
			}
		}
	}

	rep(t,101) rep(k,4) if(dp[t][gy][gx][k]) return t;
	return -1;
}

int main(){
	char a;
	int b;
	for(;scanf("%d%d%d",&h,&w,&d),h;){
		rep(i,h) rep(j,w) sig[i][j]=0; // 0 なら信号がない

		int n_sig; scanf("%d",&n_sig);
		rep(i,n_sig){
			int t;
			scanf(" %c%*c%d%d",&a,&b,&t);
			sig[a-'a'][b-1]=t;
		}

		scanf("%d",&n_ban);
		rep(i,n_ban){
			scanf(" %c%*c%d",&a,&b);
			ban[i].x1=b-1;
			ban[i].y1=a-'a';
			scanf(" %c%*c%d",&a,&b);
			ban[i].x2=b-1;
			ban[i].y2=a-'a';
		}

		scanf("%d",&n_jam);
		rep(i,n_jam){
			int t;
			scanf(" %c%*c%d",&a,&b);
			jam[i].x1=b-1;
			jam[i].y1=a-'a';
			scanf(" %c%*c%d%d",&a,&b,&t);
			jam[i].x2=b-1;
			jam[i].y2=a-'a';
			jam[i].cost=t;
		}

		{
			scanf(" %c%*c%d",&a,&b);
			sx=b-1;
			sy=a-'a';
			scanf(" %c%*c%d",&a,&b);
			gx=b-1;
			gy=a-'a';
		}

		printf("%d\n",solve());
	}

	return 0;
}