#include<cstdio>
#include<algorithm>
#include<cstring>
#include<vector>
#include<queue>
using namespace std;
int gi(){
	int x=0,w=1;char ch=getchar();
	while((ch<'0'||ch>'9')&&ch!='-')ch=getchar();
	if(ch=='-')w=0,ch=getchar();
	while(ch>='0'&&ch<='9')x=(x<<3)+(x<<1)+ch-'0',ch=getchar();
	return w?x:-x;
}
#define mk make_pair
int n,m,q,dis[8][8],inf;char s[100005],t[100005];
vector<int>vec[4];queue<pair<int,int> >Q;
void add(int i,int x,vector<int>&v){
	int sz=vec[i].size(),p=lower_bound(vec[i].begin(),vec[i].end(),x)-vec[i].begin();
	if(p)v.push_back(vec[i][p-1]);if(p<sz)v.push_back(vec[i][p]);
}
void upt(int x,int y,int z){
	if(dis[x][y]>z)dis[x][y]=z,Q.push(mk(x,y));
}
int main(){
	n=gi();m=gi();q=gi();scanf("%s%s",s+1,t+1);
	for(int i=1;i<=n;++i)vec[s[i]=='W'?0:1].push_back(i);
	for(int i=1;i<=m;++i)vec[t[i]=='N'?2:3].push_back(i);
	while(q--){
		int a=gi(),b=gi(),c=gi(),d=gi();vector<int>X,Y;
		for(int i=0;i<2;++i)add(i,a,X),add(i,c,X);
		for(int i=2;i<4;++i)add(i,b,Y),add(i,d,Y);
		sort(X.begin(),X.end());X.erase(unique(X.begin(),X.end()),X.end());
		sort(Y.begin(),Y.end());Y.erase(unique(Y.begin(),Y.end()),Y.end());
//		puts("x :");for(int x:X)printf("%d ",x);puts("");
//		puts("y :");for(int y:Y)printf("%d ",y);puts("");
		int lx=X.size(),ly=Y.size();
		int sx=lower_bound(X.begin(),X.end(),a)-X.begin();
		int sy=lower_bound(Y.begin(),Y.end(),b)-Y.begin();
		int tx=lower_bound(X.begin(),X.end(),c)-X.begin();
		int ty=lower_bound(Y.begin(),Y.end(),d)-Y.begin();
		memset(dis,63,sizeof(dis));inf=dis[0][0];dis[sx][sy]=0;Q.push(mk(sx,sy));
		while(!Q.empty()){
			int x=Q.front().first,y=Q.front().second;Q.pop();
//			printf("x=%d y=%d\n",x,y);
			if(s[X[x]]=='W')for(int z=y-1;z>=0;--z)upt(x,z,dis[x][y]+Y[y]-Y[z]);
			else for(int z=y+1;z<ly;++z)upt(x,z,dis[x][y]+Y[z]-Y[y]);
			if(t[Y[y]]=='N')for(int z=x-1;z>=0;--z)upt(z,y,dis[x][y]+X[x]-X[z]);
			else for(int z=x+1;z<lx;++z)upt(z,y,dis[x][y]+X[z]-X[x]);
		}
//		for(int i=0;i<lx;++i,puts(""))
//			for(int j=0;j<ly;++j)
//				printf("%d ",dis[i][j]==inf?-1:dis[i][j]);
		printf("%d\n",dis[tx][ty]==inf?-1:dis[tx][ty]);
	}
	return 0;
}
