#include<bits/stdc++.h>
using namespace std;
char c[107][107];
int n,m,k,pi,pj,a[107][107],mn=10000;
bool vis[107][107];
int uint(int a,int b){
	if(a%b!=0)return a/b+1;else return a/b;
}
void dfs(int p,int i,int j){
	if(c[i][j]=='#')return;
	if(p==0)return;
	if(vis[i][j])return;
	else vis[i][j]=1;
	mn=min(mn,uint(a[i][j],k));
	dfs(p-1,i+1,j);
	dfs(p-1,i,j+1);
	dfs(p-1,i-1,j);
	dfs(p-1,i,j-1);
}
int main(){
	cin>>n>>m>>k;
	for(int i=1;i<=n;i++){
		scanf("%s",c[i]);
		for(int j=0;j<m;j++){
			if(c[i][j]=='S'){
				pi=i;
				pj=j;
			}
			a[i][j]=min(i-1,j-0);
		}
	}
	memset(vis,0,sizeof(vis));
	dfs(k,pi,pj);
	cout<<mn+1;
	return 0;
}