#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
//Union_Find
ll ufpar[3000000], ufrank[3000000], num[3000000];
//初期化
void ufinit(ll n){
for(ll ii = 1; ii <= n; ii++){
ufpar[ii] = ii;
ufrank[ii] = 0;
num[ii]=1;
}
}
//木の根を求める
ll uffind(long long x){
if(ufpar[x] == x) {
return x;
} else {
ufpar[x] = uffind(ufpar[x]);
return ufpar[x];
}
}
ll elem(long long x){
return num[uffind(x)];
}
//併合
void ufunite(long long x, long long y){
x = uffind(x);
y = uffind(y);
if(x == y) return;
if(ufrank[x] < ufrank[y]){
ufpar[x] = y;
num[y]+=num[x];
num[x]=0;
} else {
ufpar[y] = x;
num[x]+=num[y];
num[y]=0;
if(ufrank[x] == ufrank[y]) ufrank[y]++;
}
}
int main() {
// your code goes here
ll h,w,i,j,k,l,a[1505][1505]={0},sum[1505][1505]={0},size[1505][1505]={0},memo,ans[150004];
char s[1505];
cin >> h >> w;
for(i=1;i<=150000;i++) ans[i]=1;
for(i=1;i<=h;i++){
cin >> s;
ll msum[1505]={0};
for(j=1;j<=w;j++){
if(s[j-1]=='#') a[i][j]=1;
msum[j]=msum[j-1]+a[i][j];
sum[i][j]=sum[i-1][j]+msum[j];
}
}
if(sum[h][w]==0){
ll qs;
cin >> qs;
for(i=0;i<qs;i++){
ll xs,ys,ls;
cin >> xs >> ys >> ls;
cout << (h-ls+1)*(w-ls+1) << endl;
}
return 0;
}
for(k=1;k<=min(h,w);k++){
for(i=1;i<=h-k+1;i++){
for(j=1;j<=w-k+1;j++){
memo=sum[i+k-1][j+k-1]-sum[i-1][j+k-1]-sum[i+k-1][j-1]+sum[i-1][j-1];
if(memo==0) size[i][j]=k;
}
}
}
ll q,roop;
cin >> q;
vector<pair<ll, ll> > v[1505];
vector<pair<ll, ll> > g[1505];
for(roop=1;roop<=q;roop++){
ll x,y,l;
cin >> x >> y >> l;
v[l].push_back(make_pair(roop,(x-1)*w+y));
}
ufinit(h*w);
for(i=1;i<=h;i++){
for(j=1;j<w;j++){
memo=(i-1)*w+j;
if(min(size[i][j],size[i][j+1])==0) continue;
g[min(size[i][j],size[i][j+1])].push_back(make_pair(memo, memo+1));
}
}
for(i=1;i<h;i++){
for(j=1;j<=w;j++){
memo=(i-1)*w+j;
if(min(size[i][j],size[i+1][j])==0) continue;
g[min(size[i][j],size[i+1][j])].push_back(make_pair(memo, memo+w));
}
}
for(i=min(h,w);i>=1;i--){
for(j=0;j<g[i].size();j++){
ufunite(g[i][j].first,g[i][j].second);
}
for(j=0;j<v[i].size();j++){
ans[v[i][j].first]=elem(v[i][j].second);
}
}
for(roop=1;roop<=q;roop++) cout << ans[roop] << endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnR5cGVkZWYgbG9uZyBsb25nIGxsOwoKLy9Vbmlvbl9GaW5kCmxsIHVmcGFyWzMwMDAwMDBdLCB1ZnJhbmtbMzAwMDAwMF0sIG51bVszMDAwMDAwXTsKLy/liJ3mnJ/ljJYKdm9pZCB1ZmluaXQobGwgbil7Cglmb3IobGwgaWkgPSAxOyBpaSA8PSBuOyBpaSsrKXsKCQl1ZnBhcltpaV0gPSBpaTsKCQl1ZnJhbmtbaWldID0gMDsKCQludW1baWldPTE7Cgl9Cn0KLy/mnKjjga7moLnjgpLmsYLjgoHjgosKbGwgdWZmaW5kKGxvbmcgbG9uZyB4KXsKCWlmKHVmcGFyW3hdID09IHgpIHsKCQlyZXR1cm4geDsKCX0gZWxzZSB7CgkJdWZwYXJbeF0gPSB1ZmZpbmQodWZwYXJbeF0pOwoJCXJldHVybiB1ZnBhclt4XTsKCX0KfQpsbCBlbGVtKGxvbmcgbG9uZyB4KXsKCXJldHVybiBudW1bdWZmaW5kKHgpXTsKfQovL+S9teWQiAp2b2lkIHVmdW5pdGUobG9uZyBsb25nIHgsIGxvbmcgbG9uZyB5KXsKCXggPSB1ZmZpbmQoeCk7Cgl5ID0gdWZmaW5kKHkpOwoJaWYoeCA9PSB5KSByZXR1cm47CglpZih1ZnJhbmtbeF0gPCB1ZnJhbmtbeV0pewoJCXVmcGFyW3hdID0geTsKCQludW1beV0rPW51bVt4XTsKCQludW1beF09MDsKCX0gZWxzZSB7CgkJdWZwYXJbeV0gPSB4OwoJCW51bVt4XSs9bnVtW3ldOwoJCW51bVt5XT0wOwoJCWlmKHVmcmFua1t4XSA9PSB1ZnJhbmtbeV0pIHVmcmFua1t5XSsrOwoJfQp9CgoKaW50IG1haW4oKSB7CiAgICAvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCiAgICBsbCBoLHcsaSxqLGssbCxhWzE1MDVdWzE1MDVdPXswfSxzdW1bMTUwNV1bMTUwNV09ezB9LHNpemVbMTUwNV1bMTUwNV09ezB9LG1lbW8sYW5zWzE1MDAwNF07CiAgICBjaGFyIHNbMTUwNV07CiAgICBjaW4gPj4gaCA+PiB3OwogICAgZm9yKGk9MTtpPD0xNTAwMDA7aSsrKSBhbnNbaV09MTsKICAgIGZvcihpPTE7aTw9aDtpKyspewogICAgCWNpbiA+PiBzOwogICAgCWxsIG1zdW1bMTUwNV09ezB9OwogICAgCWZvcihqPTE7ajw9dztqKyspewogICAgCQlpZihzW2otMV09PScjJykgYVtpXVtqXT0xOwogICAgCQltc3VtW2pdPW1zdW1bai0xXSthW2ldW2pdOwogICAgCQlzdW1baV1bal09c3VtW2ktMV1bal0rbXN1bVtqXTsKICAgIAl9CiAgICB9CiAgICBpZihzdW1baF1bd109PTApewogICAgCWxsIHFzOwogICAgCWNpbiA+PiBxczsKICAgIAlmb3IoaT0wO2k8cXM7aSsrKXsKICAgIAkJbGwgeHMseXMsbHM7CiAgICAJCWNpbiA+PiB4cyA+PiB5cyA+PiBsczsKICAgIAkJY291dCA8PCAoaC1scysxKSoody1scysxKSA8PCBlbmRsOwogICAgCX0KICAgIAlyZXR1cm4gMDsKICAgIH0KICAgIGZvcihrPTE7azw9bWluKGgsdyk7aysrKXsKICAgIAlmb3IoaT0xO2k8PWgtaysxO2krKyl7CiAgICAJCWZvcihqPTE7ajw9dy1rKzE7aisrKXsKICAgIAkJCW1lbW89c3VtW2kray0xXVtqK2stMV0tc3VtW2ktMV1baitrLTFdLXN1bVtpK2stMV1bai0xXStzdW1baS0xXVtqLTFdOwogICAgCQkJaWYobWVtbz09MCkgc2l6ZVtpXVtqXT1rOwogICAgCQl9CiAgICAJfQogICAgfQogICAgbGwgcSxyb29wOwogICAgY2luID4+IHE7CiAgICB2ZWN0b3I8cGFpcjxsbCwgbGw+ID4gdlsxNTA1XTsKICAgIHZlY3RvcjxwYWlyPGxsLCBsbD4gPiBnWzE1MDVdOwogICAgZm9yKHJvb3A9MTtyb29wPD1xO3Jvb3ArKyl7CiAgICAJbGwgeCx5LGw7CiAgICAJY2luID4+IHggPj4geSA+PiBsOwogICAgCXZbbF0ucHVzaF9iYWNrKG1ha2VfcGFpcihyb29wLCh4LTEpKncreSkpOwogICAgfQogICAgdWZpbml0KGgqdyk7CiAgICBmb3IoaT0xO2k8PWg7aSsrKXsKICAgIAlmb3Ioaj0xO2o8dztqKyspewogICAgCQltZW1vPShpLTEpKncrajsKICAgIAkJaWYobWluKHNpemVbaV1bal0sc2l6ZVtpXVtqKzFdKT09MCkgY29udGludWU7CiAgICAJCWdbbWluKHNpemVbaV1bal0sc2l6ZVtpXVtqKzFdKV0ucHVzaF9iYWNrKG1ha2VfcGFpcihtZW1vLCBtZW1vKzEpKTsKICAgIAl9CiAgICB9CiAgICBmb3IoaT0xO2k8aDtpKyspewogICAgCWZvcihqPTE7ajw9dztqKyspewogICAgCQltZW1vPShpLTEpKncrajsKICAgIAkJaWYobWluKHNpemVbaV1bal0sc2l6ZVtpKzFdW2pdKT09MCkgY29udGludWU7CiAgICAJCWdbbWluKHNpemVbaV1bal0sc2l6ZVtpKzFdW2pdKV0ucHVzaF9iYWNrKG1ha2VfcGFpcihtZW1vLCBtZW1vK3cpKTsKICAgIAl9CiAgICB9CiAgICBmb3IoaT1taW4oaCx3KTtpPj0xO2ktLSl7CiAgICAJZm9yKGo9MDtqPGdbaV0uc2l6ZSgpO2orKyl7CiAgICAJCXVmdW5pdGUoZ1tpXVtqXS5maXJzdCxnW2ldW2pdLnNlY29uZCk7CiAgICAJfQogICAgCWZvcihqPTA7ajx2W2ldLnNpemUoKTtqKyspewogICAgCQlhbnNbdltpXVtqXS5maXJzdF09ZWxlbSh2W2ldW2pdLnNlY29uZCk7CiAgICAJfQogICAgfQogICAgZm9yKHJvb3A9MTtyb29wPD1xO3Jvb3ArKykgY291dCA8PCBhbnNbcm9vcF0gPDwgZW5kbDsKICAgIHJldHVybiAwOwoJCn0=