#include <bits/stdc++.h>
using namespace std;
int n,m,q;
// vector<pair<int,int>> a[1000007];
int f[307][307];
int a[307][307];
pair<int,int> xp,di;
int dx[4]={1,0,-1,0},dy[4]={0,-1,0,1};
void bfs(){
    for (int i=1;i<=n;i++) {
        for (int j=1;j<=m;j++) f[i][j]=1e9;
    }
    queue<pair<int,int>> q[3000];
    f[xp.first][xp.second]=0;
    q[0].push(xp);
    for (int i=0;i<=(n+m)*3;i++) {
        while (q[i].empty()==0) {
            pair<int,int> ii=q[i].front();
            q[i].pop();
            int u=ii.first,v=ii.second;
            for (int i=0;i<4;i++) {
                int x=u+dx[i],y=v+dy[i],val;
                if (x<=0||y<=0||x>n||y>m) continue;
                if (a[u][v]==(i+2)%4) val=3;
                else if (a[u][v]==i) val=1; else val=2;
                if (f[x][y]>f[u][v]+val) {
                    f[x][y]=f[u][v]+val;
                    q[f[x][y]].push({x,y});
                }
            }
        }
    }
    cout<<f[di.first][di.second]<<'\n';
}
string s;
int main() 
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cin>>n>>m>>q;
    for (int i=1;i<=n;i++) {
        cin>>s;
        for (int j=1;j<=m;j++) {
            char ch=s[j-1];
            if (ch=='N') {
                a[i][j]=2;
            }
            if (ch=='E'){
                a[i][j]=3;
            }
            if (ch=='W'){
                a[i][j]=1;
            }
            if (ch=='S') {
                a[i][j]=0;
            }
        }
    }
    while (q--) {
        cin>>xp.first>>xp.second>>di.first>>di.second;
        bfs();
    }
    return 0;
}