#include <iostream>
using namespace std;
const int mxN = 505;
string grid[mxN];
int hor[mxN][mxN], ver[mxN][mxN];
int main() {
int n, m;
cin >> n >> m;
for(int i = 1; i <= n; ++i)
cin >> grid[i], grid[i] = 'a' + grid[i];
for(int i = 1; i <= n; ++i) {
for(int j = 1; j <= m; ++j) {
if(grid[i][j] == grid[i][j + 1] && grid[i][j] == '.')
hor[i][j] = 1;
}
}
grid[n + 1] = "";
for(int i = 1; i <= m; ++i)
grid[n + 1] += 'a';
for(int i = 1; i <= n; ++i)
for(int j = 1; j <= m; ++j)
if(grid[i][j] == grid[i + 1][j] && grid[i][j] == '.')
ver[i][j] = 1;
for(int i = 1; i <= n; ++i) {
for(int j = 1; j <= m; ++j) {
ver[i][j] += ver[i - 1][j] + ver[i][j - 1] - ver[i - 1][j - 1];
hor[i][j] += hor[i - 1][j] + hor[i][j - 1] - hor[i - 1][j - 1];
}
}
int q;
cin >> q;
while(q--) {
int r, c, r1, c1;
scanf("%d%d%d%d", &r, &c, &r1, &c1);
int answer = hor[r1][c1] - hor[r - 1][c1] - hor[r1][c - 1] + hor[r - 1][c - 1];
answer += ver[r1][c1] - ver[r - 1][c1] - ver[r1][c - 1] + ver[r - 1][c - 1];
printf("%d\n", answer);
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgaW50IG14TiA9IDUwNTsKc3RyaW5nIGdyaWRbbXhOXTsKaW50IGhvcltteE5dW214Tl0sIHZlcltteE5dW214Tl07CgppbnQgbWFpbigpIHsKCWludCBuLCBtOwoJY2luID4+IG4gPj4gbTsKCWZvcihpbnQgaSA9IDE7IGkgPD0gbjsgKytpKQoJCWNpbiA+PiBncmlkW2ldLCBncmlkW2ldID0gJ2EnICsgZ3JpZFtpXTsKCWZvcihpbnQgaSA9IDE7IGkgPD0gbjsgKytpKSB7CgkJZm9yKGludCBqID0gMTsgaiA8PSBtOyArK2opIHsKCQkJaWYoZ3JpZFtpXVtqXSA9PSBncmlkW2ldW2ogKyAxXSAmJiBncmlkW2ldW2pdID09ICcuJykKCQkJCWhvcltpXVtqXSA9IDE7CgkJfQoJfQoJZ3JpZFtuICsgMV0gPSAiIjsKCWZvcihpbnQgaSA9IDE7IGkgPD0gbTsgKytpKQoJCWdyaWRbbiArIDFdICs9ICdhJzsKCWZvcihpbnQgaSA9IDE7IGkgPD0gbjsgKytpKQoJCWZvcihpbnQgaiA9IDE7IGogPD0gbTsgKytqKQoJCQlpZihncmlkW2ldW2pdID09IGdyaWRbaSArIDFdW2pdICYmIGdyaWRbaV1bal0gPT0gJy4nKQoJCQkJdmVyW2ldW2pdID0gMTsKCWZvcihpbnQgaSA9IDE7IGkgPD0gbjsgKytpKSB7CgkJZm9yKGludCBqID0gMTsgaiA8PSBtOyArK2opIHsKCQkJdmVyW2ldW2pdICs9IHZlcltpIC0gMV1bal0gKyB2ZXJbaV1baiAtIDFdIC0gdmVyW2kgLSAxXVtqIC0gMV07CgkJCWhvcltpXVtqXSArPSBob3JbaSAtIDFdW2pdICsgaG9yW2ldW2ogLSAxXSAtIGhvcltpIC0gMV1baiAtIDFdOwoJCX0KCX0KCWludCBxOwoJY2luID4+IHE7Cgl3aGlsZShxLS0pIHsKCQlpbnQgciwgYywgcjEsIGMxOwoJCXNjYW5mKCIlZCVkJWQlZCIsICZyLCAmYywgJnIxLCAmYzEpOwoJCWludCBhbnN3ZXIgPSBob3JbcjFdW2MxXSAtIGhvcltyIC0gMV1bYzFdIC0gaG9yW3IxXVtjIC0gMV0gKyBob3JbciAtIDFdW2MgLSAxXTsKCQlhbnN3ZXIgKz0gdmVyW3IxXVtjMV0gLSB2ZXJbciAtIDFdW2MxXSAtIHZlcltyMV1bYyAtIDFdICsgdmVyW3IgLSAxXVtjIC0gMV07CgkJcHJpbnRmKCIlZFxuIiwgYW5zd2VyKTsKCX0KfQo=