rt
#include <bits/stdc++.h>
#define int long long
using namespace std;
int n, q; char p[1010][1010];
int s[1010][1010];
int f[1010], g[1010];
int count(int row, int l, int r){
return s[row][r] - ((l-1>=0)?s[row][l-1]:0);
}
int calc(int row, int l, int r){
int z = r / n - l / n - 1;
int ans = 0;
ans += max(z, 0ll) * s[row][n - 1];
if (z < 0){
ans += count(row, l % n, r % n);
}
else{
ans += count(row, l % n, n - 1);
ans += count(row, 0, r % n);
}
return ans;
}
int count2(int l, int r){
return g[r] - ((l-1>=0) ?g[l-1]:0);
}
signed main(){
cin >> n >> q;
for (int i = 0; i < n; i++){
for (int j = 0; j < n; j++){
cin >> p[i][j];
if (j == 0){
s[i][j] = (int)(p[i][j] == 'B');
}
else{
s[i][j] = s[i][j - 1] + (int)(p[i][j] == 'B');
}
}
}
for (int o = 1; o <= q; o++){
int a, b, c, d;
cin >> a >> b >> c >> d;
for (int i = 0; i < n; i++){
f[i] = calc(i, b, d);
if (i == 0) g[i] = f[i];
else g[i] = g[i - 1] + f[i];
}
int z = c / n - a / n - 1;
int ans = 0;
ans += max(z, 0ll) * g[n - 1];
if (z < 0){
ans += count2(a % n, c % n);
}
else{
ans += count2(a % n, n - 1);
ans += count2(0, c % n);
}
cout << ans << endl;
}
return 0;
}