#include #define fi first #define se second #define pb push_back #define mp make_pair #define SZ(x) ((int)x.size()) #define ALL(x) x.begin(),x.end() #define L(i,u) for (register int i=head[u]; i; i=nxt[i]) #define rep(i,a,b) for (register int i=(a); i<=(b); i++) #define per(i,a,b) for (register int i=(a); i>=(b); i--) using namespace std; typedef long double ld; typedef long long ll; typedef unsigned int ui; typedef pair Pii; typedef pair Pll; typedef vector Vi; template inline void read(T &x){ x=0; char c=getchar(); int f=1; while (!isdigit(c)) {if (c=='-') f=-1; c=getchar();} while (isdigit(c)) {x=x*10+c-'0'; c=getchar();} x*=f; } template T gcd(T a, T b){return !b?a:gcd(b,a%b);} template inline void umin(T &x, T y){x=x inline void umax(T &x, T y){x=x>y?x:y;} mt19937 R(chrono::system_clock().now().time_since_epoch().count()); const int N = 505; int n,x,y,a[N][N],b[233],sz; int Abs(int x){return x>0?x:-x;} int main() { int t;read(t);while(t--){ read(n);read(x);read(y); int res=1e9; rep(i,1,n)rep(j,1,n)read(a[i][j]); rep(i,1,n)rep(j,1,n){ int cur=Abs(i-x)+Abs(j-y)+1>>1; sz=0; rep(k,i-3,i+3)if(k>=1&&k<=n) rep(l,j-3,j+3)if(l>=1&&l<=n&&Abs(i-k)+Abs(j-l)<=3&&Abs(i-k)+Abs(j-l)>0) b[++sz]=a[k][l]; sort(b+1,b+sz+1); int tot=0,cnt=1,per=a[i][j]; while(cnt<9){ tot+=per;cur++; if(tot>=8*cnt*cnt){cnt++;if(sz)per+=b[sz--];} } umin(res,cur); } printf("%d\n",res); } return 0; }