#include using namespace std; #define inf 1000000000 int num[510][510],t,n,vs,vt; inline int rd() { int x=0;char ch=getchar(); for (;ch<'0'||ch>'9';ch=getchar()); for (;ch>='0'&&ch<='9';ch=getchar()) x=x*10+ch-'0'; return x; } inline int work(int vs,int vt) { static int h[110],tt; h[tt=1]=num[vs][vt]; for (int i=vs-3;i<=vs+3;i++) for (int j=vt-3;j<=vt+3;j++) { if (i<1||i>n||j<1||j>n) continue; if (i==vs&&j==vt) continue; if (abs(i-vs)+abs(j-vt)<=3) h[++tt]=num[i][j]; } sort(h+2,h+tt+1);reverse(h+2,h+tt+1); int ans=0,sum=0,now=0; for (int i=1;i<9;i++) { if (i<=tt) now+=h[i]; int hhh=8*i*i-sum; if (hhh<=0) { ans++;sum+=now;continue; } hhh=(hhh+now-1)/now; ans+=hhh;sum+=hhh*now; } return ans; } inline void work() { n=rd();vs=rd();vt=rd(); for (int i=1;i<=n;i++) for (int j=1;j<=n;j++) num[i][j]=rd(); int ans=inf; for (int i=1;i<=n;i++) for (int j=1;j<=n;j++) { int hh=abs(i-vs)+abs(j-vt); ans=min(ans,work(i,j)+((hh+1)/2)); } printf("%d\n",ans); } int main() { t=rd(); while (t--) work(); return 0; }