#include using namespace std; template void gi(T& ret){ ret=0; char c=getchar(); int f=1; for(;c<'0'||c>'9';c=getchar()) if(c=='-') f=-1; for(;c>='0'&&c<='9';c=getchar()) ret=ret*10+(c-'0'); ret*=f; } templatevoid pi(T x){ if(x>9) pi(x/10); putchar(x%10+'0'); } int a[505][505]; int main(){ int T; gi(T); while(T--){ int n,x,y; gi(n); gi(x); gi(y); for(int i=1;i<=n;++i) for(int j=1;j<=n;++j) gi(a[i][j]); int ans=(int)1e9; for(int i=1;i<=n;++i){ for(int j=1;j<=n;++j){ int ti=max(0,(abs(i-x)+abs(j-y)+1)/2); // printf("|%d|",ti); int cnt[4]={0,0,0,0}; for(int dx=-3;dx<=3;++dx) for(int dy=-(3-abs(dx));dy<=(3-abs(dx));++dy){ int i1=i+dx,j1=j+dy; if(i1<1||i1>n||j1<1||j1>n) continue; if(dx==0&&dy==0); else cnt[a[i1][j1]]++; } vector f; for(int i=3;i>=1;--i) for(int j=1;j<=cnt[i];++j) f.push_back(i); f.resize(7); reverse(f.begin(),f.end()); f.push_back(a[i][j]); reverse(f.begin(),f.end()); int food=0,delta=0; for(int i=1;i<=8;++i){ // printf("<%d>",f[i-1]); delta+=f[i-1]; if(8*i*i>food){ int delta_ti=(8*i*i-food-1)/delta+1; food+=delta_ti*delta; ti+=delta_ti; // printf("|%d %d %d %d|",delta,delta_ti,food,8*i*i); }else{ ti++; food+=delta; } } // printf("%d ",ti); ans=min(ans,ti); } // puts(""); } printf("%d\n",ans); } return 0; }