#include"bits/stdc++.h" using namespace std; const int N = 505; const int inf = 1e9+7; int ma[N][N],n,sx,sy; int va[N][N]; vector v; void pre(int x,int y){ v.clear(); for(int i=-3;i<=3;i++) for(int j=-3;j<=3;j++){ if(abs(i)+abs(j)>3 || abs(i)+abs(j)==0) continue; int xi = x+i , yi = y+j; if(xi<=0 || xi>n || yi<=0 || yi>n) continue; v.push_back(ma[xi][yi]); } sort(v.begin(),v.end()); v.push_back(ma[x][y]); int cnt = 0 , j=v.size()-1 , sum = 0 , num = 0; //if(x==sx && y==sy) sum = ma[x][y]; for(int i=1;i<=8;i++,j--){ if(j>=0) num += v[j]; int need = i*i*8 - sum; int b = (need-1)/num + 1; //b = max( 0 , b ); sum += b*num; cnt += b; } va[x][y] = cnt; } struct node{ int x,y,step; node(int a,int b,int c){ x=a , y=b , step=c; } }; bool vis[N][N]; int bfs(){ for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) vis[i][j] = 0; queueq; q.push(node(sx,sy,0)); vis[sx][sy] = 1; int ans = inf; while(q.size()){ node e = q.front(); q.pop(); ans = min( ans , e.step+va[e.x][e.y] ); for(int i=-2;i<=2;i++) for(int j=-2;j<=2;j++){ if(abs(i)+abs(j)>2 || abs(i)+abs(j)==0) continue; int xi = e.x+i , yi = e.y+j; if(xi<=0 || xi>n || yi<=0 || yi>n) continue; if(vis[xi][yi]==1) continue; vis[xi][yi] = 1; q.push(node(xi,yi,e.step+1)); } } return ans; } int main() { ios::sync_with_stdio(false); int t; cin>>t; while(t--){ cin>>n>>sx>>sy; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++) cin>>ma[i][j]; } for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++) pre(i,j); } cout<