**#include <bits/stdc++.h>
using namespace std;
const int N=10;
long long n,m,len,c[1001],ans,f[2][1<<N][1<<N],num[1<<N],t[1<<N];
void dfs (int cs,bool f,bool ff,long long sum,long long p)
{
if (cs==m)
{
num[++len]=sum;
c[len]=p;
return;
}
if (f==0&&ff==0)
{
dfs (cs+1,1,f,sum+(1<<cs),p+1);
}
dfs (cs+1,0,f,sum,p);
}
int main()
{
char d;
cin>>n>>m;
for (int i=1;i<=n;i++)
for (int j=1;j<=m;j++)
{
cin>>d;
if (d=='H')
t[i]+=1<<(j-1);
}
dfs (0,0,0,0,0);
for (int i=1;i<=n;i++)
{
for (int j=1;j<=len;j++)
for (int k=1;k<=len;k++)
{
int s=num[k]&t[i-1],ss=num[j]&t[i],sss=num[j]&num[k];
if (sss==0&&ss==0&&s==0)
{
for (int l=1;l<=len;l++)
if ((num[k]&num[l])==0&&(num[j]&num[l])==0&&(num[l]&t[i-2])==0)
f[i%2][j][k]=max(f[i%2][j][k],f[(i+1)%2][k][l]+c[j]),ans=max(ans,f[i%2][j][k]);
}
}
}
cout<<ans;
}**