#include<iostream>
#include<vector>
using namespace std;
#define int long long
void solve(){
int n, m;
cin >> n >> m;
vector<string> grid(n);
for(auto &i: grid){
cin >> i;
}
vector<vector<int>> vis(n, vector<int>(m, 0));
int f = 0, r = 0;
auto dfs = [&](int x, int y, auto && self) -> void {
f |= (grid[x][y] == 'F');
r |= (grid[x][y] == 'R');
int dx[] = {0, 0, -1, 1};
int dy[] = {1, -1, 0, 0};
for(int d = 0; d < 4; d++){
int nx = dx[d] + x;
int ny = dy[d] + y;
if(nx < 0 || nx >= n || ny < 0 || ny >= m) continue;
if(vis[nx][ny] || grid[nx][ny] == '.') continue;
vis[nx][ny] = 1;
self(nx, ny, self);
}
};
int ans = 0;
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
if(vis[i][j] || grid[i][j] == '.') continue;
vis[i][j] = 1;
f = 0, r = 0;
dfs(i, j, dfs);
ans += (f + r);
}
}
cout << ans << endl;
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
// init();
int tc = 1;
// cin >> tc;
while(tc--){
solve();
}
}