#include<bits/stdc++.h>
using namespace std;
const int N=1010;
int n,m;
int f[N][N];
int vis[N][N];
int x[4]={-1,0,1,0};
int y[4]={0,1,0,-1};
int ans[N][N];
int c=0;
void bfs(int a,int b){
queue<pair<int,int> > q;
int res=1;
c++;
q.push(make_pair(a,b));
vis[a][b]=c;
while(!q.empty()){
pair<int,int> t=q.front();
q.pop();
for(int i=0;i<4;i++){
int a1=t.first+x[i];
int b1=t.second+y[i];
if(!vis[a1][b1]&&a1>0&&a1<=n&&b1>0&&b1<=n){
if(f[a1][b1]!=f[t.first][t.second]){
vis[a1][b1]=c;
res++;
q.push(make_pair(a1,b1));
}
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(vis[i][j]==c)
ans[i][j]=res;
}
}
}
int main(void){
cin>>n>>m;
for(int i=1;i<=n;i++){
string s;
cin>>s;
for(int j=0;j<s.size();j++)
f[i][j+1]=s[j]-'0';
}
int res=0;
for(int i=1;i<=m;i++){
if(i!=1) cout<<endl;
int a,b;
cin>>a>>b;
if(ans[a][b]==0)
bfs(a,b);
cout<<ans[a][b];
}
return 0;
}