#include<bits/stdc++.h>
using namespace std;
int k=-1,a[1001][1001],vis[1001][1001],x[10001],y[10001],n,m;
int fx[4]={0,-1,1,0};
int fy[4]={-1,0,0,1};
void zy(int x,int y,int k,int ans){
if(x<1||x>n||y<1||y>n||vis[x][y]==1)return;
vis[x][y]=1;
for(int i=0;i<4;i++){
if(k==0&&a[x+fx[i]][y+fy[i]]==1&&vis[x+fx[i]][y+fy[i]]==0)zy(x+fx[i],y+fy[i],k+1,ans+1);
if(k==1&&a[x+fx[i]][y+fy[i]]==0&&vis[x+fx[i]][y+fy[i]]==0)zy(x+fx[i],y+fy[i],k-1,ans+1);
}
vis[x][y]=0;
k=max(k,ans);
ans=0;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>a[i][j];
}
}
for(int i=1;i<=m;i++){
cin>>x[i]>>y[i];
}
for(int i=1;i<=m;i++){
zy(x[i],y[i],a[x[i]][y[i]],1);
cout<<k<<endl;
}
}