#include <iostream>
#include<iomanip>
#include<string>
using namespace std;
long long fx[100000],i,j,m,n,x,y;
int suo(int a)
{
if(fx[a]==a)return a;
return fx[a]=suo(fx[a]);
}
void hh(int x,int y)
{
int gg = suo(x);
int mm = suo(y);
fx[max(gg,mm)]=min(gg,mm);
}
int main()
{
cin>>n>>m;
int arr[n*n+1];
string s;
for(i = 0;i<n;i++)
{
cin>>s;
for(j = 1;j<=n;j++)
{
arr[i*n+j]=s[j-1]-48;
fx[i*n+j]=i*n+j;
}
s = " ";
}
for(i = 0;i<n;i++)
{
for(j = 1;j<=n;j++)
{
long long g = i*n+j;
if(j!=1)
{
if(arr[g]!=arr[g-1])
{
hh(g,g-1);
}}
if(j!=n)
{if(arr[g]!=arr[g+1])
{
hh(g+1,g);
}}
if(i!=n-1)
{if(arr[g]!=arr[g+n])
{
hh(g+n,g);
}
}
if(i!=0)
{
if(arr[g]!=arr[g-n])
{
hh(g,g-n);
}}
}
}
long long t = 0;
int uu[m];
for(t = 1;t<=m;t++)
{ uu[t]=0;
cin>>x>>y;
for(i = 0;i<n;i++)
{
long long yu = n*(x-1)+y;
for(j = 1;j<=n;j++)
{
long long g = n*i+j;
if(fx[g]==fx[yu])
uu[t]++;
}
}
}
for(t = 1;t<=m;t++)
{
cout<<uu[t]<<endl;
}
}