#include using namespace std; int main(){ int H,W; cin >> H >> W; vector S(H); for(int i = 0; i < H; i++){ cin >> S[i]; } vector key_sum(H+1,vector(W+1,0)); for(int i = 0; i < H; i++){ int cnt = 0; for(int j = 0; j < W; j++){ if(S[i][j] == '.' && ( ((j == 0 || S[i][j - 1] == '#') && j < W - 1 && S[i][j + 1] == '.')|| ((i == 0 || S[i - 1][j] == '#') && i < H - 1 && S[i + 1][j] == '.')|| ((i == 0 || S[i - 1][j] == '#') && (j == 0 || S[i][j - 1] == '#')) )){ cnt++; } key_sum[i + 1][j + 1] = cnt + key_sum[i][j + 1]; } } int Q; cin >> Q; while(Q--){ int A,B,C,D; cin >> A >> B >> C >> D; int ans = 0; if(C - A > 1 && D - B > 1){ ans += key_sum[C - 1][D - 1]; ans -= key_sum[A][D - 1]; ans -= key_sum[C - 1][B]; ans += key_sum[A][B]; } int i,j; i = A - 1; for(int j = B - 1; j < D; j++){ if(S[i][j] == '.' && ( ((j == B - 1 || S[i][j - 1] == '#') && j < D - 1 && S[i][j + 1] == '.')|| ((i == A - 1 || S[i - 1][j] == '#') && i < C - 1 && S[i + 1][j] == '.')|| ((i == A - 1 || S[i - 1][j] == '#') && (j == B - 1 || S[i][j - 1] == '#')) )){ ans++; } } if(A != C){ i = C - 1; for(int j = B - 1; j < D; j++){ if(S[i][j] == '.' && ( ((j == B - 1 || S[i][j - 1] == '#') && j < D - 1 && S[i][j + 1] == '.')|| ((i == A - 1 || S[i - 1][j] == '#') && i < C - 1 && S[i + 1][j] == '.')|| ((i == A - 1 || S[i - 1][j] == '#') && (j == B - 1 || S[i][j - 1] == '#')) )){ ans++; } } } j = B - 1; for(int i = A; i < C - 1; i++){ if(S[i][j] == '.' && ( ((j == B - 1 || S[i][j - 1] == '#') && j < D - 1 && S[i][j + 1] == '.')|| ((i == A - 1 || S[i - 1][j] == '#') && i < C - 1 && S[i + 1][j] == '.')|| ((i == A - 1 || S[i - 1][j] == '#') && (j == B - 1 || S[i][j - 1] == '#')) )){ ans++; } } if(B != D){ j = D - 1; for(int i = A; i < C - 1; i++){ if(S[i][j] == '.' && ( ((j == B - 1 || S[i][j - 1] == '#') && j < D - 1 && S[i][j + 1] == '.')|| ((i == A - 1 || S[i - 1][j] == '#') && i < C - 1 && S[i + 1][j] == '.')|| ((i == A - 1 || S[i - 1][j] == '#') && (j == B - 1 || S[i][j - 1] == '#')) )){ ans++; } } } cout << ans << endl; } }