#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define ld long double
#define MOD 1000000007
#define pie 2 * (acos(0.0))
#define yes cout << "YES\n"
#define no cout << "NO\n"
#define pb push_back
#define nl '\n'
#define lcm(a, b) (a * b) / (__gcd<ll>(a, b))
#define print(v) \
for (auto e : v) \
cout << e << " "; \
cout << endl;
#define printp(v) \
for (auto e : v) \
cout << e.first << " " << e.second << endl;
#define srt(v) sort(v.begin(), v.end())
#define rsrt(v) sort(v.rbegin(), v.rend())
#define rep(i, n) for (int i = 0; i < (n); i++)
#define rrep(i, n) for (int i = (n) - 1; i >= 0; i--)
#define FOR(i, a, b) for (int i = (a); i <= (b); i++)
#define RFOR(i, a, b) for (int i = (a); i >= (b); i--)
#define trav(a, x) for (auto &a : x)
#define F first
#define S second
#define setbit(x) __builtin_popcount(x)
#define sz(x) (int)(x).size()
#define vi vector<int>
#define pi pair<int, int>
#define even(n) if (n % 2 == 0)
#define odd(n) if (n % 2 == 1)
#define sp << " " <<
#define alliswell \
ios::sync_with_stdio(false); \
cin.tie(nullptr);
const int mx = 1e5+100;
vector<int>ar(mx, 5);
vector<int> pfs (mx, 5);
void solve()
{
int n , m;
cin >> n >> m;
int mx = 0;
int mn = min(n, m);
int bk = (mn-1)*2+1;
char s[n+10][m+10];
for(int i = 0; i < n; i++){
for(int j = 0; j < m ; j++){
cin >> s[i][j];
if( s[i][j] == '+') mx = 1;
}
//getchar();
}
bool f = 0;
for(int i = 0; i < n-1; i++){
if(f == 1){
break;
}
for(int j = 0; j < m-1 ; j++){
if(mx == bk){
f = 1;
break;
}
if( s[i][j] == '+'){
int ans = 1;
mx = max(mx, ans);
int k = 1;
while(i+k < n && j + k < m && i - k >= 0 && j - k >= 0){
if(mx == bk){
f = 1;
break;
}
if(s[i-k][j] == '+' && s[i+k][j] == '+' && s[i][j-k] == '+' && s[i][j+k] == '+' ){
ans+=4;
mx = max(mx, ans);
k++;
}
else {
break;
}
}
}
}
}
cout << mx << endl;
// cout << "hey";
}
int main()
{
alliswell
int t; cin >> t;
while(t--) solve();
return 0;
}