#include<iostream>
#include<queue>
#include<algorithm>
using namespace std;
const int N=1005;
bool place[N][N];
bool used[N][N];
queue<int> q1;
int main(){
	int h,w,n;
	int i,j,k;
	int a,b,c;
	int p,q;
	char ca[N];
	cin>>h>>w>>n;
	for(i=0;i<h;i++){
		cin>>ca;
		for(j=0;j<w;j++){
			if(ca[j]!='#')place[i][j]=true;
			if(ca[j]=='S')p=i,q=j;
		}
	}
	q1.push(p*N+q);
	a=N;
	for(i=0;i<=n;i++){
		p=q1.size();
		for(j=0;j<p;j++){
			b=q1.front(),q1.pop();
			c=b%N,b/=N;
			if(used[b][c])continue;
			used[b][c]=true;
			if(!place[b][c])continue;
			a=min({a,b,c,h-b-1,w-c-1});
			if(b!=0)q1.push((b-1)*N+c);
			if(b!=h-1)q1.push((b+1)*N+c);
			if(c!=0)q1.push(b*N+c-1);
			if(c!=w-1)q1.push(b*N+c+1);
		}
	}
	if(a==0)a=1;
	else a=(a-1)/n+2;
	cout<<a<<endl;
	return 0;
}
	
