RT
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll MAXN=2.5e3+5;
ll n,m;
char mp[MAXN][MAXN];
ll vis[MAXN][MAXN],cnt;
ll F[MAXN][MAXN];
bool E[MAXN][MAXN];
ll sum_E[MAXN][MAXN];
ll q;
ll x_1,y_1,x_2,y_2;
ll dx[4]={-2,0,0,2},dy[4]={0,-2,2,0};
bool dfs(ll now_x,ll now_y){
if(now_x<2||now_x>=2*n||now_y<2||now_y>=2*m)return 0;
if(vis[now_x][now_y])return 1;
vis[now_x][now_y]=cnt;
bool res=1;
for(int i=0;i<4;i++)if(!E[now_x+dx[i]/2][now_y+dy[i]/2])res&=dfs(now_x+dx[i],now_y+dy[i]);
return res;
}
set<ll> S;
int main(){
cin>>n>>m>>q;
for(int i=1;i<=n*2;i+=2)for(int j=1;j<=m*2;j+=2)cin>>mp[i][j];
for(int i=1;i<=n*2;i+=2)for(int j=1;j<=m*2;j+=2){
if(mp[i][j]==mp[i+2][j])E[i+1][j]=1;
if(mp[i][j]==mp[i][j+2])E[i][j+1]=1;
}
for(int i=1;i<=n*2;i++)for(int j=1;j<=m*2;j++)sum_E[i][j]=sum_E[i-1][j]+sum_E[i][j-1]-sum_E[i-1][j-1]+E[i][j];
for(int i=2;i<n*2;i+=2)for(int j=2;j<m*2;j+=2)if(!vis[i][j]){
cnt++;
F[i][j]=dfs(i,j);
}
// for(int i=1;i<=n*2;i++){
// for(int j=1;j<=m*2;j++)cout<<F[i][j]<<" ";
// cout<<endl;
// }
for(int i=2;i<=n*2;i++)for(int j=1;j<=m*2;j++)F[i][j]=F[i-1][j]+F[i][j-1]-F[i-1][j-1]+F[i][j];
for(int i=1;i<=q;i++){
cin>>x_1>>y_1>>x_2>>y_2;
ll V=(x_2-x_1+1)*(y_2-y_1+1);
x_1=1+(x_1-1)*2;
x_2=1+(x_2-1)*2;
y_1=1+(y_1-1)*2;
y_2=1+(y_2-1)*2;
ll now_E=sum_E[x_2][y_2]-sum_E[x_2][y_1-1]-sum_E[x_1-1][y_2]+sum_E[x_1-1][y_1-1];
ll now_F=F[x_2][y_2]-F[x_2][y_1-1]-F[x_1-1][y_2]+F[x_1-1][y_1-1];
S.clear();
if(x_1!=x_2&&y_1!=y_2){
for(int j=y_1+1;j<=y_2;j+=2){
if(!E[x_1][j]&&vis[x_1+1][j]==vis[x_1-1][j])S.insert(vis[x_1+1][j]);
if(!E[x_2][j]&&vis[x_2+1][j]==vis[x_2-1][j])S.insert(vis[x_2+1][j]);
}
for(int j=x_1+1;j<=x_2;j+=2){
if(!E[j][y_1]&&vis[j][y_1-1]==vis[j][y_1+1])S.insert(vis[j][y_1+1]);
if(!E[j][y_2]&&vis[j][y_2-1]==vis[j][y_2+1])S.insert(vis[j][y_2+1]);
}
}
now_F-=S.size();
now_F=max(now_F,0ll);
// cout<<"debug: "<<"V="<<V<<" now_F="<<now_F<<" now_E="<<now_E<<endl;
cout<<V+now_F-now_E<<'\n';
}
return 0;
}