模拟
#include <iostream>
#include <cstdio>
#include <cstring>
#define MAX 1005
using namespace std;
int r, c;
int ans;
char s[MAX][MAX];
bool v[MAX][MAX];
int main()
{
while(cin>>r>>c){
getchar();
for(int i = 0; i < r; i++){
gets(s[i]);
}
memset(v, 0, sizeof(v));
ans = 0;
for(int i = 0; i < r; i++){
for(int j = 0; j < c; j++){
int tans = 0;
for(int ii = 0; ii < r; ii++){
if(s[ii][j] == 'S'){
tans = 0;
break;
}
if(!v[ii][j])tans ++;
}
if(tans){
for(int ii = 0; ii < r; ii++){
v[ii][j] = 1;
}
}
ans += tans;
tans = 0;
for(int jj = 0; jj < c; jj++){
if(s[i][jj] == 'S'){
tans = 0;
break;
}
if(!v[i][jj])tans ++;
}
if(tans){
for(int jj = 0; jj < c; jj++){
v[i][jj] = 1;
}
}
ans += tans;
}
}
cout<<ans<<endl;
}
return 0;
}