import java. io.*;
import java. util.*;
public class Main {
static int[] dx = {0,0,1,-1};
static int[] dy = {1,-1,0,0};
static int[][] time;
static int h,w;
static Queue<Node> q = new LinkedList<>();
static boolean visited[][];
static boolean fire_visited[][];
static int fire_time[][];
static Queue<Node>fire_q = new LinkedList<>();
static boolean bl;
static int fin_x, fin_y;
static int ans;
int test_case
= Integer.
parseInt(br.
readLine());
for(int m=0; m<test_case; m++) {
bl = false;
q.clear();
fire_q.clear();
String[] t
= br.
readLine().
split(" "); time = new int[h][w];
fire_time = new int[h][w];
fire_visited = new boolean[h][w];
visited = new boolean[h][w];
for(int i=0; i<h; i++) {
String[] input
= br.
readLine().
split(""); for(int j=0; j<w; j++) {
arr[i][j] = input[j];
if(arr[i][j].equals("@")) {
q.add(new Node(i,j)); // 시작위치를 넣어준다
if(i==0 || j==0 || i==h-1 || j==w-1) {
fin_x=0;
fin_y=0;
bl = true;
}
}
if(arr[i][j].equals("*")) {
fire_q.add(new Node(i,j));
}
}
}
fire_bfs();
bfs();
if(bl) {
}
else {
System.
out.
println("IMPOSSIBLE"); }
}
}
public static void fire_bfs() {
while(!fire_q.isEmpty()) {
Node a = fire_q.poll();
fire_visited[a.x][a.y] = true;
for(int i=0; i<4; i++) {
int x_1 = a.x+dx[i];
int y_1 = a.y +dy[i];
if(x_1>=0 && y_1>=0 && x_1<h && y_1<w) {
if(!fire_visited[x_1][y_1] && !arr[x_1][y_1].equals("#")) {
fire_visited[x_1][y_1] = true;
fire_time[x_1][y_1] = fire_time[a.x][a.y]+1;
fire_q.add(new Node(x_1,y_1));
}
}
}
}
}
public static void bfs() {
while(!q.isEmpty()) {
Node a = q.poll();
visited[a.x][a.y] = true;
for(int i=0; i<4; i++) {
int x_1 = a.x+dx[i];
int y_1 = a.y+dy[i];
if(x_1>=0 && y_1>=0 && x_1<h && y_1<w) {
if(!visited[x_1][y_1] && arr[x_1][y_1].equals(".")) {
if(!visited[x_1][y_1] && fire_time[x_1][y_1]>time[a.x][a.y]+1 || fire_time[x_1][y_1]==0) {
visited[x_1][y_1] = true;
q.add(new Node(x_1,y_1));
time[x_1][y_1] = time[a.x][a.y]+1;
if(x_1==0 || y_1==0 || x_1==h-1 || y_1==w-1) {
bl = true;
ans
=Math.
min(ans, time
[x_1
][y_1
]); }
}
}
}
}
}
}
}
class Node{
int x;
int y;
Node(int x, int y){
this.x= x;
this. y= y;
}
}