#include <iostream>
#include <bits/stdc++.h>
#define ll long long
#define newl '\n'
using namespace std;
const ll INF = 4e18;
int n,m,q;
std::vector<std::vector<char>> a;
std::vector<std::vector<int>> s,lim;
std::vector<int> w,h,stone,ans;
void readData(){
std::cin >> n >> m >> q;
a.assign(n + 1,std::vector<char>(m + 1,0));
s.assign(n + 1,std::vector<int>(m + 1,0));
lim.assign(n + 1,std::vector<int>(m + 1,0));
ans.assign(q + 1,0);
w.assign(q + 1,0);
h.assign(q + 1,0);
stone.assign(q + 1,0);
for(int i = 1;i <= n;++i){
for(int j = 1;j <= m;++j){
std::cin >> a[i][j];
}
}
for(int i = 1;i <= q;++i){
std::cin >> w[i] >> h[i] >> stone[i];
}
}
void calc(int k){
std::vector<int> prev(m + 1,0);
for(int i = 1;i <= n;++i){
for(int j = 1;j <= m;++j){
s[i][j] = s[i - 1][j];
s[i][j] += a[i][j] == '#';
while(s[i][j] - s[prev[j]][j] > k){
++prev[j];
}
lim[i][j] = i - prev[j];
// std::cout << lim[i][j] << " ";
}
// std::cout << newl;
}
}
void calc_ans(std::vector<int> query_index){
std::vector<std::vector<int>> mat(n + 3,std::vector<int>(m + 3,0));
for(int i = 1;i <= n;++i){
std::stack<int> st;
st.push(0);
for(int j = 1;j <= m;++j){
while(st.top() != 0 && lim[i][j] <= lim[i][st.top()]){
// int it = st.top();
int v = lim[i][st.top()];
st.pop();
int v1 = std::max(lim[i][st.top()],lim[i][j]);
int len = j - st.top() - 1;
++mat[v][len];
--mat[v1][len];
// std::cout << "IMP " << v << " " << v1 << " " << len << newl;
}
st.push(j);
}
while(st.top() != 0){
// int it = st.top();
int v = lim[i][st.top()];
st.pop();
int v1 = lim[i][st.top()];
int len = m - st.top();
// std::cout << "IMP " << v << " " << v1 << " " << len << newl;
++mat[v][len];
--mat[v1][len];
}
}
for(int i = n;i >= 1;--i){
for(int j = 1;j <= m;++j){
mat[i][j] += mat[i + 1][j];
}
}
for(int i = 1;i <= n;++i){
int total = 0;
for(int j = m;j >= 1;--j){
total += mat[i][j];
mat[i][j] = mat[i][j + 1] + total;
}
}
for(int cur : query_index){
ans[cur] = mat[w[cur]][h[cur]];
}
}
void solve(){
for(int k = 0;k <= 5;++k){
std::vector<int> query_index;
for(int i = 1;i <= q;++i){
if(stone[i] == k){
query_index.emplace_back(i);
}
}
calc(k);
calc_ans(query_index);
}
for(int i = 1;i <= q;++i){
std::cout << ans[i] << newl;
}
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
readData();
solve();
return 0;
}
/*
5 6 1
1 2 5
2 3 5
1 4 10
4 3 2
3 5 3
4 5 8
1 5
4 3 1
1 2 3
1 3 4
1 4 5
1 3
*/