#include typedef long long ll; ll gi(){ ll x=0,f=1; char ch=getchar(); while(!isdigit(ch))f^=ch=='-',ch=getchar(); while(isdigit(ch))x=x*10+ch-'0',ch=getchar(); return f?x:-x; } std::mt19937 rnd(time(NULL)); #define rand rnd #define pr std::pair #define all(x) (x).begin(),(x).end() #define fi first #define se second templatevoid cxk(T&a,T b){a=a>b?a:b;} templatevoid cnk(T&a,T b){a=a>=1; } return ret; } templatevoid inc(Ta&a,Tb b){a=a+b>=mod?a+b-mod:a+b;} templatevoid dec(Ta&a,Tb b){a=a>=b?a-b:a+mod-b;} #endif int a[510][510]; int main(){ #ifdef LOCAL freopen("in.in","r",stdin); //freopen("out.out","w",stdout); #endif int qwq=gi(); while(qwq--){ int n=gi(),x=gi(),y=gi(); for(int i=1;i<=n;++i) for(int j=1;j<=n;++j) a[i][j]=gi(); int ans=1e9; for(int i=1;i<=n;++i) for(int j=1;j<=n;++j){ int s[4]={9}; for(int x=std::max(i-3,1);x<=std::min(i+3,n);++x) for(int y=std::max(j-3,1);y<=std::min(j+3,n);++y) if((x!=i||y!=j)&&abs(i-x)+abs(y-j)<=3)++s[a[x][y]]; std::vectorvec; for(int i=3;~i;--i)while(vec.size()<9&&s[i]--)vec.push_back(i); int sum=abs(i-x)+abs(j-y)+1>>1,sa=a[i][j],food=0,now; for(int s=1;s<=8;++s){ now=0; if(8*s*s>food)now=(8*s*s-food+sa-1)/sa; sum+=now;food+=sa*now; sa+=vec[s-1]; } cnk(ans,sum); } printf("%d\n",ans); } return 0; }