250507
/*
#include <stdio.h>
int arr[50][50]= {}, count[500]= {};
int n, sum=0;
int dfs(int k, int p)
{
arr[k][p]=0;
count[sum]++;
if(p+1<=n&&arr[k][p+1]==1)
{
dfs(k, p+1);
}
if(p-1>0&&arr[k][p-1]==1)
{
dfs(k, p-1);
}
if(k+1<=n&&arr[k+1][p]==1)
{
dfs(k+1, p);
}
if(k-1>0&&arr[k-1][p]==1)
{
dfs(k-1, p);
}
}
int main()
{
int i, j, d=0, temp;
int memo[100]= {};
scanf("%d", &n);
for(i=1; i<=n; i++)
{
for(j=1; j<=n; j++)
{
scanf("%1d", &arr[i][j]);
}
}
for(i=1; i<=n; i++)
{
for(j=1; j<=n; j++)
{
if(arr[i][j]==1)
{
dfs(i, j);
sum++;
}
}
}
printf("%d\n", sum);
for(i=0; i<sum; i++)
{
for(j=0;j<sum;j++)
{
if(count[j]>count[j+1])
{
temp=count[j];
count[j]=count[j+1];
count[j+1]=temp;
}
}
}
for(i=1;i<=sum;i++)
{
printf("%d\n", count[i]);
}
return 0;
}
*/
/*
#include<stdio.h>
int arr[50][50]={};
int sum=0;
void dfs(int k, int p)
{
if(k<1 || p <1 || k> || p> ||arr[k][p]!=1)
{
return ;
}
arr[k][p]=0;
dfs(k, p+1);
dfs(k, p-1);
dfs(k+1, p);
dfs(k-1, p);
}
int main()
{
int n, h, i, j;
scanf("%d", &n);
for(i=1;i<=h;i++)
{
for(j=1;j<=n;j++)
{
scanf("%d", arr[i][j]);
}
}
}
for(i=1; i<=h; i++)
{
for(j=1; j<=n; j++)
{
if(arr[i][j]==1)
{
dfs(i, j);
sum++;
}
}
}
printf("%d", sum);
return 0;
}
*/
#include<stdio.h>
char arr[200][200]= {};
int n, h, sum=0;
void dfs(int k, int p)
{
if(k<1||p<1||k>n||p>h||arr[k][p]=='.')
{
return;
}
arr[k][p]='.';
dfs(k, p+1);
dfs(k, p-1);
dfs(k+1, p);
dfs(k-1, p);
dfs(k+1, p+1);
dfs(k-1, p-1);
dfs(k+1, p-1);
dfs(k-1, p+1);
}
int main()
{
int i, j;
scanf("%d %d", &n, &h);
for(i=1; i<=h; i++)
{
for(j=1; j<=n; j++)
{
scanf(" %c", &arr[i][j]);
}
}
for(i=1; i<=h; i++)
{
for(j=1; j<=n; j++)
{
if(arr[i][j]=='L')
{
dfs(i, j);
printf("dfs(%d %d)\n", i, j);
sum++;
}
}
}
printf("%d", sum);
return 0;
}




