#include <bits/stdc++.h>
using namespace std;
using ll = int64_t;
int main(){
	ll h, w, k; cin >> h >> w >> k;
	string s[h];
	for(ll i = 0; i < h; ++i) cin >> s[i];
	set<pair<ll, ll>> se;
	pair<ll, ll> start;
	for(ll i = 0; i < h; ++i){
		for(ll j = 0; j < w; ++j){
			if(s[i][j] == 'S') start = pair<ll, ll>(i, j);
		}
	}
	se.insert(start);
	queue<pair<pair<ll, ll>, ll>> q;
	q.push(pair<pair<ll, ll>, ll>(start, 0));
	ll dx[] = {1, 0, -1, 0};
	ll dy[] = {0, 1, 0, -1};
	while(q.size()){
		pair<pair<ll, ll>, ll> now = q.front();
		q.pop();
		for(ll i = 0; i < 4; ++i){
			pair<ll, ll> next = pair<ll, ll>(now.first.first + dx[i], now.first.second + dy[i]);
			if(!(0 <= next.first && next.first < h && 0 <= next.second && next.second < w)) continue;
			if(s[next.first][next.second] == '#') continue;
			if(se.find(next) != se.end()) continue;
			if(now.second + 1 > k) continue;
			se.insert(next);
			q.push(pair<pair<ll, ll>, ll>(next, now.second + 1));
		}
	}

	ll ans = 1145148931919;
	for(auto ite = se.begin(); ite != se.end(); ++ite) ans = min(ans, min(min(ite->first, (h - 1) - ite->first), min(ite->second, (w - 1) - ite->second)));
	cout << 1 + ans / k + (ans % k > 0) << endl;
	return 0;
}