import math as mt
from collections import defaultdict,deque
from posixpath import split
import sys
from bisect import bisect_right as b_r
from bisect import bisect_left as b_l
mod=1000000007
INT_MAX = sys.maxsize-1
INT_MIN = -sys.maxsize
def solve():
n,m=map(int,input().split())
a=[input() for i in range(n)]
ans=0
row=0
for i in range(n):
s=0
for j in range(m):
if(a[i][j]=="S"):
s+=1
if(not s):
ans+=m
row+=1
col=0
for i in range(m):
s=0
for j in range(n):
if(a[j][i]=="S"):
s+=1
if(not s):
ans+=(n-row)
return ans
if __name__ == "__main__":
print(solve())
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
void dfs(int node,vector<int> &vis,vector<vector<int>> &adj,vector<int> &v){
v.push_back(node);
vis[node]=1;
for(auto it:adj[node]){
if(!vis[it]){
dfs(it,vis,adj,v);
}
}
}
void solve(){
int n,m;
cin>>n>>m;
char A[n][m];
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin>>A[i][j];
}
}
for(int i=0;i<n;i++){
int j;
for(j=0;j<m;j++){
if(A[i][j]=='S')
break;
}
if(j==m){
for(j=0;j<m;j++)
A[i][j]='e';
}
}
for(int i=0;i<m;i++){
int j;
for(j=0;j<n;j++){
if(A[j][i]=='S')
break;
}
if(j==n){
for(int j=0;j<n;j++)
A[j][i]='e';
}
}
int count=0;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(A[i][j]=='e')
count++;
}
}
cout<<count<<endl;
}
int32_t main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int t=1;
// cin>>t;
while(t--){
solve();
}
return 0;
}
1281. Subtract the Product and Sum of Digits of an Integer | 1342. Number of Steps to Reduce a Number to Zero |
1528. Shuffle String | 1365. How Many Numbers Are Smaller Than the Current Number |
771. Jewels and Stones | 1512. Number of Good Pairs |
672. Richest Customer Wealth | 1470. Shuffle the Array |
1431. Kids With the Greatest Number of Candies | 1480. Running Sum of 1d Array |
682. Baseball Game | 496. Next Greater Element I |
232. Implement Queue using Stacks | 844. Backspace String Compare |
20. Valid Parentheses | 746. Min Cost Climbing Stairs |
392. Is Subsequence | 70. Climbing Stairs |
53. Maximum Subarray | 1527A. And Then There Were K |
1689. Partitioning Into Minimum Number Of Deci-Binary Numbers | 318. Maximum Product of Word Lengths |
448. Find All Numbers Disappeared in an Array | 1155. Number of Dice Rolls With Target Sum |
415. Add Strings | 22. Generate Parentheses |
13. Roman to Integer | 2. Add Two Numbers |
515. Find Largest Value in Each Tree Row | 345. Reverse Vowels of a String |