#include<bits/stdc++.h>
using namespace std;
const int maxn=5000;
int n,m,k;
char iomap[maxn][maxn];
pair<int,int> start;
int step[maxn][maxn];
bool vis[maxn][maxn];
bool islegal(pair<int,int> p)
{
	return (!p.first||!p.second||p.first>=n-1||p.second>=m-1);
}
void dfs(pair<int,int> p)
{
	if(islegal(p))
	{
		cout<<step[p.first][p.second]<<endl;
		exit(0);
	}
	if(step[p.first+2][p.second]==inf)
	{
		step[p.first+2][p.second]=step[p.first][p.second];
		dfs(make_pair(p.first+2,p.second));
	}
	if(step[p.first-2][p.second]==inf)
	{
		step[p.first-2][p.second]=step[p.first][p.second];
		dfs(make_pair(p.first-2.p.second));
	}
}
int main()
{
	scanf("%d%d%d",&n,&m,&k);
	for(int i=0;i<n;i++)
		for(int j=0;j<m;j++)
		{
			cin>>iomap[i][j];
			if(iomap[i][j]=='S')
				start=make_pair(i,j);
			vis[i][j]=false;
		}
	vis[start.first][start.second]=true;
	step[start.first][start.second]=0;
	dfs(start);
	return 0;
}