#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using db = double;
using ld = long double;
template <typename T>
using V = vector<T>;
template <typename T>
using VV = vector<vector<T>>;
const ll mod = 1000000007;
const ll INF = 1000000099;
const ll LINF = (ll)(1e18 + 99);
const vector<ll> dx = {-1, 1, 0, 0}, dy = {0, 0, -1, 1};
template <typename T, typename U>
inline bool chmin(T &t, const U &u) {
  if (t > u) {
    t = u;
    return 1;
  }
  return 0;
}
template <typename T, typename U>
inline bool chmax(T &t, const U &u) {
  if (t < u) {
    t = u;
    return 1;
  }
  return 0;
}
template <typename T>
inline T gcd(T a, T b) {
  return b ? gcd(b, a % b) : a;
}
template <typename T>
inline T mpow(T a, T n) {
  T res = 1;
  for (; n; n >>= 1) {
    if (n & 1) res = res * a;
    a = a * a;
  }
  return res;
}
signed main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  cout << fixed << setprecision(20);
  int h, w, k;
  cin >> h >> w >> k;
  V<string> v(h);
  VV<bool> used(h, V<bool>(w, false));
  deque<ll> mov;
  for (ll i = 0; i < (ll)(h); ++i) {
    cin >> v[i];
    for (ll j = 0; j < (ll)(w); ++j) {
      if (v[i][j] == 'S') {
        mov.push_back(i);
        mov.push_back(j);
        mov.push_back(k);
        mov.push_back(1);
        used[i][j] = true;
      }
    }
  }
  ll ans = INF;
  while (mov.size()) {
    int g, r, num, sco;
    g = mov.front();
    mov.pop_front();
    r = mov.front();
    mov.pop_front();
    num = mov.front();
    mov.pop_front();
    sco = mov.front();
    mov.pop_front();
    if (sco == 1) {
      mov.push_back(g);
      mov.push_back(r);
      mov.push_back(k);
      mov.push_back(sco + 1);
    }
    if (num == 0) continue;
    for (ll i = 0; i < (ll)(4); ++i) {
      int neg = g + dx[i], ner = r + dy[i];
      if (0 <= neg && neg < h && 0 <= ner && ner < w &&
          (v[neg][ner] == '.' || sco > 1) && !used[neg][ner]) {
        if (!neg || !ner || neg == h - 1 || ner == w - 1) {
          chmin(ans, sco);
          continue;
        }
        used[neg][ner] = true;
        mov.push_front(sco);
        mov.push_front(num - 1);
        mov.push_front(ner);
        mov.push_front(neg);
      }
    }
  }
  cout << ans << '\n';
}
