#include #include #include #include #include using namespace std; const int N = 502; int n; int a[N][N]; int moveTo(int x, int y, int i, int j) { return (abs(x - i) + abs(y - j) + 1) >> 1; } int solve(int x, int y) { int own[4] = {}, put[4] = {}; for (int i = max(x-3, 1); i <= min(x+3, n); ++i) for (int j = max(y-3, 1); j <= min(y+3, n); ++j) { if (abs(x-i) + abs(y-j) > 3) continue; ++own[a[i][j]]; } --own[a[x][y]]; ++put[a[x][y]]; int ans = 0, food = 0, num = 1; while (num < 9) { ++ans; for (int i = 1; i <= 3; ++i) food += i * put[i]; while (food >= 8 * num * num) { ++num; for (int i = 3; i >= 1; --i) if (own[i]) { --own[i]; ++put[i]; break; } } } return ans; } int main() { int T, x, y; scanf("%d", &T); while (T--) { scanf("%d%d%d", &n, &x, &y); for (int i = 1; i <= n; ++i) for (int j = 1; j <= n; ++j) scanf("%d", &a[i][j]); int ans = INT_MAX; for (int i = 1; i <= n; ++i) for (int j = 1; j <= n; ++j) ans = min(ans, moveTo(x, y, i, j) + solve(i, j)); printf("%d\n", ans); } return 0; }