/*#include<stdio.h>
int arr[101][101]={};
int v[101]={};
int n, m;
void dfs(int x){ //x노드에서 dfs를 수행하세요
//x노드와 연결 && 방문x 노드에서 dfs수행
v[x]=1;
for(int i=1;i<=m;i++/*m개노드)
{
if(arr[x][i]==1/*x노드와 연결 &&v[i]==0 /*방문x)
{
dfs(i);
}
}
}
int main()
{
int j,i,sum=0,a,b;
scanf("%d",&m);
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d %d",&a,&b);
arr[a][b]=1;
arr[b][a]=1;
}
dfs(1);
for(i=2;i<=m;i++/*2번노드 ~ n번노드 )
{
sum+=v[i];
}
printf("%d",sum);
return 0;
}
#include<stdio.h>
int arr[26][26]={};
int n;
void dfs(int x, int y){
arr[x][y]=0;
if(x-1>=0 && arr[x-1][y]==1) dfs(x-1,y);
if(y+1<n && arr[x][y+1]==1) dfs(x,y+1);
if(x+1<n && arr[x+1][y]==1) dfs(x+1,y);
if(y-1>=0 && arr[x][y-1]==1) dfs(x,y-1);
}
int main()
{
int i,j,a,b;
int cnt=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%1d",&arr[i][j]);
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(arr[i][j]==1)
{
cnt++;
// printf("%d %d\n",i,j);
dfs(i,j);
}
}
}
printf("%d",cnt);
return 0;
}
*/
/*
#include<stdio.h>
int arr[101][101];
int n,m;
void dfs(char x,char y){
arr[x][y]=0;
if(x-1>=0 && arr[x-1][y]) dfs(x-1,y);
if(x-1>=0 && y+1<m && arr[x-1][y+1]) dfs(x-1,y+1);
if(y+1<m && arr[x][y+1]) dfs(x,y+1);
if(x+1<n && y+1<m && arr[x+1][y+1]) dfs(x+1,y+1);
if(x+1<n && arr[x+1][y]) dfs(x+1,y);
if(x+1<n && y-1>=0 && arr[x+1][y-1]) dfs(x+1,y-1);
if(y-1>=0 && arr[x][y-1]) dfs(x,y-1);
if(x-1>=0 && y-1>=0 && arr[x-1][y-1]) dfs(x-1,y-1);
}
int main()
{
int i,j;
int cnt=0;
scanf("%d %d",&n,&m);
for(i=0;i<n;i++)
{
for(j=0;i<m;j++)
{
scanf("%1c",arr[i][j]);
}
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(arr[i][j]=='L')
{
cnt++;
printf("%d %d\n",i,j);
dfs(i,j);
}
}
}
printf("%d",cnt);
return 0;
}
//#include<stdio.h>
int arr[101][101]={};
int v[101]={};
int n, m;
void dfs(int x){ //x노드에서 dfs를 수행하세요
//x노드와 연결 && 방문x 노드에서 dfs수행
v[x]=1;
for(int i=1;i<=m;i++/*m개노드)
{
if(arr[x][i]==1/*x노드와 연결 &&v[i]==0 /*방문x)
{
dfs(i);
}
}
}
int main()
{
int j,i,sum=0,a,b;
scanf("%d",&m);
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d %d",&a,&b);
arr[a][b]=1;
arr[b][a]=1;
}
dfs(1);
for(i=2;i<=m;i++/*2번노드 ~ n번노드 )
{
sum+=v[i];
}
printf("%d",sum);
return 0;
}
#include<stdio.h>
int arr[26][26]={};
int n;
void dfs(int x, int y){
arr[x][y]=0;
if(x-1>=0 && arr[x-1][y]==1) dfs(x-1,y);
if(y+1<n && arr[x][y+1]==1) dfs(x,y+1);
if(x+1<n && arr[x+1][y]==1) dfs(x+1,y);
if(y-1>=0 && arr[x][y-1]==1) dfs(x,y-1);
}
int main()
{
int i,j,a,b;
int cnt=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%1d",&arr[i][j]);
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(arr[i][j]==1)
{
cnt++;
// printf("%d %d\n",i,j);
dfs(i,j);
}
}
}
printf("%d",cnt);
return 0;
}
*/
#include<stdio.h>
char arr[101][101];
int n,m;
void dfs(char x,char y){
arr[x][y]=0;
if(x-1>=0 && arr[x-1][y]) dfs(x-1,y);
if(x-1>=0 && y+1<m && arr[x-1][y+1]) dfs(x-1,y+1);
if(y+1<m && arr[x][y+1]) dfs(x,y+1);
if(x+1<n && y+1<m && arr[x+1][y+1]) dfs(x+1,y+1);
if(x+1<n && arr[x+1][y]) dfs(x+1,y);
if(x+1<n && y-1>=0 && arr[x+1][y-1]) dfs(x+1,y-1);
if(y-1>=0 && arr[x][y-1]) dfs(x,y-1);
if(x-1>=0 && y-1>=0 && arr[x-1][y-1]) dfs(x-1,y-1);
}
int main()
{
int i,j;
int cnt=0;
scanf("%d %d",&n,&m);
for(i=0;i<n;i++)
{
for(j=0;i<m;j++)
{
scanf("%1c",&arr[i][j]);
}
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(arr[i][j]=='L')
{
cnt++;
printf("%d %d\n",i,j);
dfs(i,j);
}
}
}
printf("%d",cnt);
return 0;
}