package xj;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class KuaGe {
static int T,N,M,sx,sy,ex,ey;
static int data[][];
static boolean map[][];
static int Dx[]={-1,0,1,0};
static int Dy[]={0,1,0,-1};
static class Node{
int x;
int y;
int step;
}
static Node[]queue;
static boolean flag;
public static void main(String[] args) throws FileNotFoundException {
/* Scanner sc=new Scanner(System.in); */
Scanner sc = new Scanner(new File("src/Dage"));
T=sc.nextInt();
for (int t = 0; t < T; t++) {
N=sc.nextInt();
M=sc.nextInt();
data=new int [N][M];
map=new boolean[N][M];
queue=new Node[N*M];
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
data[i][j]=sc.nextInt();
if(data[i][j]==2){sx=i;sy=j;}
if(data[i][j]==3){ex=i;ey=j;}
}
}
flag=false;
for (int i = 1; i <=N; i++) {
//记得回溯
for (int j = 0; j < N; j++) {
for (int j2 = 0; j2 < M; j2++) {
map[j][j2]=false;
}
}
bfs(i);
if(flag){System.out.println(i);break;}
}
}
}
private static void bfs(int step) {
int head=0;
int tail=1;
Node n1=new Node();
n1.x=sx;
n1.y=sy;
n1.step=1;
queue[head]=n1;
map[sx][sy]=true;
while(head<tail){
for (int i = 0; i < 4; i++) {
if(i==0||i==2){
int nx=queue[head].x;
int ny=queue[head].y;
for (int j = 1; j <= step; j++) {
int dx=nx+j*Dx[i];
int dy=ny+j*Dy[i];
if(dx>=0&&dy>=0&&dx<N&&dy<M){
if(data[dx][dy]!=0&&!map[dx][dy]){
Node n3=new Node();
n3.x=dx;
n3.y=dy;
n3.step=queue[head].step+1;
queue[tail]=n3;
map[dx][dy]=true;
tail++;
if(dx==ex&&dy==ey){flag=true;return;}
}
}
}
}
if(i==1||i==3){
int nx=queue[head].x;
int ny=queue[head].y;
int dx=nx+Dx[i];
int dy=ny+Dy[i];
if(dx>=0&&dy>=0&&dx<N&&dy<M){
if(data[dx][dy]!=0&&!map[dx][dy]){
Node n2=new Node();
n2.x=dx;
n2.y=dy;
n2.step=queue[head].step+1;
queue[tail]=n2;
map[dx][dy]=true;
tail++;
if(dx==ex&&dy==ey){flag=true;return;}
}
}
}
}
head++;
}
}
}
//input
4
5 5
0 3 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
2 1 0 0 0
5 7
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 3
1 1 1 1 1 1 1
1 1 1 1 1 1 2
6 7
0 0 0 0 0 0 0
0 0 0 0 3 1 0
0 0 0 0 0 0 0
1 1 1 1 0 1 1
0 2 1 0 0 0 0
1 1 1 1 1 1 1
5 5
3 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
2 0 0 0 0
0 0
//output
4
1
2
4