#include<iostream>
#include<queue>
using namespace std;
int sum,dir[4][2]={{1,0},{-1,0},{0,1},{0,-1}},n,m;
char map[100][100];
struct point{
int x,y;
point(int xx,int yy){
x=xx;
y=yy;
}
};
void bfs(int x,int y){
queue<point> q;
q.push(point(x,y));
map[x][y]='X';
while(!q.empty()){
point p=q.front();
for(int i=0;i<4;i++){
int dx=p.x+dir[i][0];
int dy=p.y+dir[i][1];
if(dx>=0&&dx<n&&dy>=0&&dy<m&&map[dx][dy]=='R'){
map[dx][dy]=0;
q.push(point(dx,dy));
}
}
q.pop();
}
return ;
}
int main(){
cin>>n>>m;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin>>map[i][j];
}
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(map[i][j]=='R'){
bfs(i,j);
sum++;
}
}
}
cout<<sum;
}