#include <iostream>
#include <algorithm>
#include <string>
#include <queue>
#define INF 1e+9
using namespace std;

int dx[] = {1,0,-1,0},dy[] = {0,1,0,-1};

typedef pair<int,int> P;

int main(){
	int h,w,k,mi = INF;
	bool used[800][800] = {};
	string field[800];
	cin >> h >> w >> k;
	queue<P> que;
	for(int i = 0;i < h;i++){
		cin >> field[i];
		for(int j = 0;j < w;j++){
			if(field[i][j] == 'S'){
				que.push(P(i,j));
			}
		}
	}
	for(int d = 0;d <= k;d++){
		int siz = que.size();
		if(!siz) break;
		for(int i = 0;i < siz;i++){
			P p = que.front();que.pop();
			int x = p.first,y = p.second;
			mi = min({mi,x,y,h - 1 - x,w - 1 - y});
			for(int j = 0;j < 4;j++){
				int nx = x + dx[j],ny = y + dy[j];
				if(nx >= 0 && nx < h && ny >= 0 && ny < w && field[nx][ny] != '#' && !used[nx][ny]){
					used[nx][ny] = true;
					que.push(P(nx,ny));
				}
			}
		}
	}
	if(!mi) cout << 1 << endl;
	else cout << (mi - 1) / k + 2 << endl;
	return 0;
}