#include<bits/stdc++.h>
using namespace std;
inline int read(){
short f=1;int x=0;char c=getchar();
while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}
while(c>='0'&&c<='9'){x=(x<<3)+(x<<1)+(c^48);c=getchar();}
return x*f;
}
inline void readch(char *str){
int lenn=0;
char c=getchar();
while(c==' '||c=='\n'||c=='\r'){
c=getchar();
}
while(c>='A'&&c<='Z'||c>='a'&&c<='z'||c>='0'&&c<='9'){
str[lenn++]=c;
c=getchar();
if(c==' '||c=='\n'||c=='\r') break;
}
}
int max(int a,int b){return a>b?a:b;}
int min(int a,int b){return a<b?a:b;}
int swap(int &a,int &b){int c=a;a=b;b=c;}
int n,m;
int a[1030][1030];
int p[1030][1030];
int main(){
n=read(),m=read();
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
char c=getchar();
switch(c){
case 'u':
a[i][j]=1;
break;
case 'l':
a[i][j]=2;
break;
case 'd':
a[i][j]=3;
break;
case 'r':
a[i][j]=4;
break;
}
}
getchar();
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
int x=i,y=j;
while(x>0&&x<=n&&y>0&&y<=m){
if(a[x][y]==0||p[x][y]==1){p[i][j]=1;break;}
if(p[x][y]==-1){p[i][j]=-1;break;}
if(a[x][y]==1) x--;
if(a[x][y]==2) y--;
if(a[x][y]==3) x++;
if(a[x][y]==4) y++;
}
if(p[x][y]==0) p[x][y]=-1;
}
}
int ans=0;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(p[i][j]==1) ans++;
}
}
return printf("%d",ans),0;
}