#include <bits/stdc++.h>
using namespace std;
#define int long long
#define yes cout << "YES\n";
#define no cout << "NO\n";
void FastIO(){
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
}
void solve(){
int n,m; cin >> n >> m;
vector<vector<int>> a(n+2, vector<int>(m+1,0));
vector<vector<int>> c(n+2, vector<int>(m+1,0));
vector<vector<int>> e(n+2, vector<int>(m+1,0));
for(int i = 1; i <= n; i++){
for(int j = 1; j <= m; j++){
char ch; cin >> ch;
if(ch == 'a')
a[i][j] = 1;
if(ch == 'c')
c[i][j] = 1;
if(ch == 'e')
e[i][j] = 1;
}
}
for(int i = 1; i <= n; i++){
for(int j = 1; j <= m; j++){
a[i][j] += a[i][j-1];
c[i][j] += c[i][j-1];
e[i][j] += e[i][j-1];
}
}
for(int i = 1; i <= n; i++){
for(int j = 1; j <= m; j++){
a[i][j] += a[i-1][j];
c[i][j] += c[i-1][j];
e[i][j] += e[i-1][j];
}
}
int q; cin >> q;
while(q--){
int r1,c1;
cin >> r1 >> c1;
int r2,c2;
cin >> r2 >> c2;
int la = a[r2][c2] - a[r2][c1-1] - a[r1-1][c2] + a[r1-1][c1-1];
int lc = c[r2][c2] - c[r2][c1-1] - c[r1-1][c2] + c[r1-1][c1-1];
int le = e[r2][c2] - e[r2][c1-1] - e[r1-1][c2] + e[r1-1][c1-1];
int ans = min(la,lc);
ans = min(ans,le);
cout << ans << '\n';
}
}
signed main(){
FastIO();
int t = 1;
//cin >> t;
while (t--){
solve();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwojZGVmaW5lIGludCBsb25nIGxvbmcKI2RlZmluZSB5ZXMgY291dCA8PCAiWUVTXG4iOwojZGVmaW5lIG5vIGNvdXQgPDwgIk5PXG4iOwoKCnZvaWQgRmFzdElPKCl7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUobnVsbHB0cik7CiAgICBjb3V0LnRpZShudWxscHRyKTsKfQoKdm9pZCBzb2x2ZSgpewogICAgaW50IG4sbTsgY2luID4+IG4gPj4gbTsKCiAgICB2ZWN0b3I8dmVjdG9yPGludD4+IGEobisyLCB2ZWN0b3I8aW50PihtKzEsMCkpOwogICAgdmVjdG9yPHZlY3RvcjxpbnQ+PiBjKG4rMiwgdmVjdG9yPGludD4obSsxLDApKTsKICAgIHZlY3Rvcjx2ZWN0b3I8aW50Pj4gZShuKzIsIHZlY3RvcjxpbnQ+KG0rMSwwKSk7CgogICAgZm9yKGludCBpID0gMTsgaSA8PSBuOyBpKyspewogICAgICAgIGZvcihpbnQgaiA9IDE7IGogPD0gbTsgaisrKXsKICAgICAgICAgICAgY2hhciBjaDsgY2luID4+IGNoOwogICAgICAgICAgICBpZihjaCA9PSAnYScpCiAgICAgICAgICAgICAgICBhW2ldW2pdID0gMTsKICAgICAgICAgICAgaWYoY2ggPT0gJ2MnKQogICAgICAgICAgICAgICAgY1tpXVtqXSA9IDE7CiAgICAgICAgICAgIGlmKGNoID09ICdlJykKICAgICAgICAgICAgICAgIGVbaV1bal0gPSAxOwogICAgICAgIH0KICAgIH0KCiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IG47IGkrKyl7CiAgICAgICAgZm9yKGludCBqID0gMTsgaiA8PSBtOyBqKyspewogICAgICAgICAgICBhW2ldW2pdICs9IGFbaV1bai0xXTsKICAgICAgICAgICAgY1tpXVtqXSArPSBjW2ldW2otMV07CiAgICAgICAgICAgIGVbaV1bal0gKz0gZVtpXVtqLTFdOwogICAgICAgIH0KICAgIH0KICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKXsKICAgICAgICBmb3IoaW50IGogPSAxOyBqIDw9IG07IGorKyl7CiAgICAgICAgICAgIGFbaV1bal0gKz0gYVtpLTFdW2pdOwogICAgICAgICAgICBjW2ldW2pdICs9IGNbaS0xXVtqXTsKICAgICAgICAgICAgZVtpXVtqXSArPSBlW2ktMV1bal07CiAgICAgICAgfQogICAgfQoKICAgIGludCBxOyBjaW4gPj4gcTsKICAgIHdoaWxlKHEtLSl7CiAgICAgICAgaW50IHIxLGMxOwogICAgICAgIGNpbiA+PiByMSA+PiBjMTsKCiAgICAgICAgaW50IHIyLGMyOwogICAgICAgIGNpbiA+PiByMiA+PiBjMjsKCiAgICAgICAgaW50IGxhID0gYVtyMl1bYzJdIC0gYVtyMl1bYzEtMV0gLSBhW3IxLTFdW2MyXSArIGFbcjEtMV1bYzEtMV07CiAgICAgICAgaW50IGxjID0gY1tyMl1bYzJdIC0gY1tyMl1bYzEtMV0gLSBjW3IxLTFdW2MyXSArIGNbcjEtMV1bYzEtMV07CiAgICAgICAgaW50IGxlID0gZVtyMl1bYzJdIC0gZVtyMl1bYzEtMV0gLSBlW3IxLTFdW2MyXSArIGVbcjEtMV1bYzEtMV07CgogICAgICAgIGludCBhbnMgPSBtaW4obGEsbGMpOwogICAgICAgIGFucyA9IG1pbihhbnMsbGUpOwoKICAgICAgICBjb3V0IDw8IGFucyA8PCAnXG4nOwogICAgfQp9CgoKc2lnbmVkIG1haW4oKXsKICAgIEZhc3RJTygpOwoKICAgIGludCB0ID0gMTsKICAgIC8vY2luID4+IHQ7CgogICAgd2hpbGUgKHQtLSl7CiAgICAgICAgc29sdmUoKTsKICAgIH0KICAgIHJldHVybiAwOwp9Cg==