#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
//英语 看博友分析 抄博友程序 悬线法 单调栈 背
char da[1008][1008];
int h[1008][1008];
int a[1008];
int l[1008];
int main()
{
int T;
cin>>T;
for(int o=0;o<T;o++)
{
memset(h,0,sizeof(h));
memset(a,0,sizeof(a));
memset(l,0,sizeof(l));
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>da[i][j];
if(da[i][j]=='F')
{
h[i][j]=h[i-1][j]+1;
}else
{
h[i][j]=0;
}
}
}
/*
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cout<<da[i][j]<<" ";
}
cout<<endl;
}*/
int jg=0;
for(int i=1;i<=n;i++)
{
int mx=0;
int top=0;
for(int j=1;j<=m+1;j++)
{
int tmp=j;
while(top>0 && h[i][j]<=a[top])
{
mx=max(mx,(j-l[top])*a[top]);
tmp=min(tmp,l[top]);//背
top--;
}
top++;
a[top]=h[i][j];
l[top]=tmp;
}
jg=max(jg,mx);
}
cout<<jg*3<<endl;
}
}