RT
#include<iostream>
#include<cstdio>
using namespace std;
inline void read(int &x){ //快读
int f=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-') f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
x=x*10+ch-'0';
ch=getchar();
}
x*=f;
}
int dx[9]={0,1,-1,1,-1,0,0,1,-1},dy[9]={0,-1,1,0,0,1,-1,1,-1};
int x,y;
char map[1001][100001];
int m,n;
inline int DFS(int p,int q){
int cnt=0;
if(map[p][q]=='t'){
for(int i=1;i<=8;i++){
if(p+dx[i]<0||p+dx[i]>x+1||q+dy[i]<0||q+dy[i]>y+1) continue;
if(map[p+dx[i]][q+dy[i]]=='f'){
cnt++;
DFS(p+dx[i],q+dy[i]);
}
}
}
else{
for(int i=1;i<=8;i++){
if(p+dx[i]<0||p+dx[i]>x+1||q+dy[i]<0||q+dy[i]>y+1) continue;
if(map[p+dx[i]][q+dy[i]]=='t'){
cnt++;
DFS(p+dx[i],q+dy[i]);
}
}
}
return cnt;
}
int main(){
read(x);read(y);
for(int i=1;i<=x;i++){
for(int j=1;j<=y;j++){
scanf("%c",&map[i][j]);
if(map[i][j]=='0') map[i][j]=='f';
else map[i][j]=='t';
}
}
for(int i=1;i<=y;i++){
read(m);read(n);
printf("%d\n",DFS(m,n));
}
return 0;
}