#include #include #include #include using namespace std; int l,r,T,n,a[505][505],buc[4],dist[505][505],x,y,nx,ny,tot=0,sum,nw,res,kr,ans; bool leg(int x){return x>=1&&x<=n;} int main() { scanf("%d",&T); while(T--) { scanf("%d%d%d",&n,&x,&y);ans=1000000000; for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)scanf("%d",&a[i][j]); for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)dist[i][j]=abs(i-x)+abs(j-y),dist[i][j]=(dist[i][j]+1)/2; for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { buc[1]=buc[2]=buc[3]=0;buc[0]=1000000000; for(int u=-3;u<=3;u++) { for(int v=abs(u)-3;v<=3-abs(u);v++) { if(u==0&&v==0)continue; nx=i+u;ny=j+v; if(leg(nx)&&leg(ny))buc[a[nx][ny]]++; } } tot=a[i][j];sum=0;nw=0;kr=3; for(int k=1;k<=8;k++) { res=((8*k*k-nw+tot-1)/tot); sum+=res; nw+=res*tot; while(buc[kr]==0)kr--; tot+=kr; buc[kr]--; } ans=min(ans,dist[i][j]+sum); } } printf("%d\n",ans); } return 0; }