#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
inline ll read() {
ll f = 1, x = 0;
char ch = getchar();
while (ch < '0' || ch > '9') {
if (ch == '-') f = -1;
ch = getchar();
}
while (ch >= '0' && ch <= '9') {
x = x * 10 + ch - '0';
ch = getchar();
}
return x * f;
}
inline void write(ll x) {
if (x < 0) x = -x, putchar('-');
if (x > 9) write(x/10);
putchar('0'+x%10);
}
inline void writeln(ll x) {
write(x);
putchar('\n');
}
#define id(i, j) ((i)-1)*m+(j)
struct edge {
ll v, next;
} e[40005];
ll head[3605], cnt;
void add_edge(ll u, ll v) {
e[++cnt] = {v, head[u]};
head[u] = cnt;
}
ll T, n, m;
bool mp[65][65];
ll dfn[3605];
ll low[3605];
bool isCut[3605], hasCut;
ll tot, num;
void tarjan(ll u, bool root) {
dfn[u] = low[u] = ++tot;
ll child = 0;
for (int i = head[u]; i; i = e[i].next) {
ll v = e[i].v;
if (!dfn[v]) {
tarjan(v, 0);
low[u] = min(low[u], low[v]);
if (low[v] >= dfn[u] && !root)
isCut[u] = hasCut = 1;
if (root) child ++;
} else low[u] = min(low[u], dfn[v]);
}
if (root && child >= 2) isCut[u] = hasCut = 1;
}
int main() {
T = read();
while (T --) {
memset(e, 0, sizeof(e));
memset(head, 0, sizeof(head));
cnt = 0;
memset(mp, 0, sizeof(mp));
memset(dfn, 0, sizeof(dfn));
memset(low, 0, sizeof(low));
memset(isCut, 0, sizeof(isCut));
tot = 0;
num = 0;
hasCut = false;
n = read(), m = read();
for (int i = 1; i <= n; i ++) {
for (int j = 1; j <= m; j ++) {
char c;
cin >> c;
mp[i][j] = (c == 'G');
num += mp[i][j];
}
}
if (num <= 2) {
writeln(-1);
continue;
}
for (int i = 1; i <= n; i ++) {
for (int j = 1; j <= m; j ++) {
if (!mp[i][j]) continue;
if (i != 1 && mp[i-1][j])
add_edge(id(i, j), id(i-1, j));
if (i != n && mp[i+1][j])
add_edge(id(i, j), id(i+1, j));
if (j != 1 && mp[i][j-1])
add_edge(id(i, j), id(i, j-1));
if (j != m && mp[i][j+1])
add_edge(id(i, j), id(i, j+1));
}
}
num = 0;
for (int i = 1; i <= n; i ++) {
for (int j = 1; j <= m; j ++) {
if (mp[i][j] && !dfn[id(i, j)]) {
tarjan(id(i, j), 1);
num ++;
}
}
}
if (num >= 2) {
writeln(0);
} else if (hasCut) {
writeln(1);
} else {
writeln(2);
}
}
return 0;
}