#include<bits/stdc++.h>
using namespace std;
const int maxn=1e2+10;
template <typename T> void read(T &x) {
x=0; char c=getchar();int f=1;
for (;!isdigit(c);c=getchar())if(c=='-')f=-1;
for (;isdigit(c);c=getchar()) x=(x<<3)+(x<<1)+(c^48);
x*=f;
}
const int dx[] = {1, 0, -1, 0};
const int dy[] = {0, 1, 0, -1};
int w,h,xx,yy,xxx,yyy,b,oi=-1;
char a[maxn][maxn];
int bfs(int x,int y)
{
int n=0;
if (xx==xxx&&yy==yyy)
{
return n;
}
for (int i=0;i<4;i++)
{
int nx = x + dx[i];
int ny = y + dy[i];
if (oi!=-1&&a[nx][ny]!='*'&&a[nx][ny]=='.')
{
if((i%2==0&&oi%2==1)||(i%2==1)&&(i%2==0))
{
n++;
oi=i;
}
}
if (nx==xxx&&ny==yyy)
{
return n;
}
}
}
int main()
{
read(w);read(h);
for (int i=1;i<=w;i++)
{
for (int j=1;j<=h;j++)
{
cin>>a[i][j];
if (a[i][j]=='C'&&b==0)
{
xx=i;
yy=j;
b=1;
}
else if (a[i][j]=='C'&&b==1)
{
xxx=i;
yyy=j;
}
}
}
int ans=bfs(xx,yy);
cout<<ans/2<<endl;
return 0;
}