#include #include #include #include #include #define pb push_back #define mp make_pair #define xx first #define yy second #define rep(i,a,b) for(int i=(a),i##_end_=(b);i<=i##_end_;i++) #define dwn(i,a,b) for(int i=(a),i##_end_=(b);i>=i##_end_;i--) using namespace std; inline int read() { int x=0,f=1;char c=getchar(); for(;!isdigit(c);c=getchar()) if(c=='-') f=-1; for(;isdigit(c);c=getchar()) x=x*10+c-'0'; return x*f; } typedef long long ll; typedef pair pii; const int maxn=510; int n,a[maxn][maxn],vis[maxn][maxn],clo; int work(int x,int y) { ++clo;vis[x][y]=clo; int people=1,food=0,cur=a[x][y],ans=0; while(1) { food+=cur; if(food>=8*people*people) { // food-=8*people*people; people++; int px,py,mx=0; rep(i,x-3,x+3) rep(j,y-3,y+3) { if(i>=1&&i<=n&&j>=1&&j<=n&&abs(i-x)+abs(j-y)<=3&&vis[i][j]!=clo) { if(a[i][j]>mx) mx=a[i][j],px=i,py=j; } } if(mx>0) { cur+=mx; vis[px][py]=clo; } } ans++; if(people==9) break; }; return ans; } int x,y; int main() { int T=read(); while(T--) { n=read();x=read();y=read(); rep(i,1,n) rep(j,1,n) a[i][j]=read(); int ans=1e9; rep(i,1,n) rep(j,1,n) ans=min(ans,work(i,j)+(abs(i-x)+abs(j-y)+1)/2); printf("%d\n",ans); } return 0; }