//Accepted 5196 KB 109 ms
//类似hdu1506
//输入数据的格式没有明确的限制
//可能出现以下情况
//5 5
//R
//F
//F F F
//F F F F F
//R R R
//R R
//R F R F R
//R R R R R
#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
;
bool map[imax_n][imax_n];
int a[imax_n][imax_n];
int l[imax_n],r[imax_n];
int n,m;
void getA()
{
;i<=n;i++)
{
;j<=m;j++)
{
a[i][j]=;
int t=i;
&& map[t][j]==)
{
a[i][j]++;
t--;
}
}
}
// for (int i=1;i<=n;i++)
//{
// for (int j=1;j<=m;j++)
// printf("%d ",a[i][j]);
// printf("\n");
//}
}
void Dp()
{
getA();
;
;i<=n;i++)
{
l[]=;
a[i][]=-;
;j<=m;j++)
{
int t=j;
])
{
t=l[t-];
}
l[j]=t;
}
r[m]=m;
a[i][m+]=-;
;j>=;j--)
{
int t=j;
])
{
t=r[t+];
}
r[j]=t;
}
;j<=m;j++)
)>ans)
ans=a[i][j]*(r[j]-l[j]+);
}
printf(*ans);
}
];
int main()
{
int T;
while (scanf("%d",&T)!=EOF)
{
while (T--)
{
scanf("%d%d",&n,&m);
;i<=n;i++)
{
;j<=m;j++)
{
scanf("%s",s);
]=='F')
map[i][j]=;
else
map[i][j]=;
}
}
//for (int i=1;i<=n;i++)
//{
// for (int j=1;j<=m;j++)
// printf("%d",map[i][j]);
// printf("\n");
//}
Dp();
}
}
;
}