#include <bits/stdc++.h>
using namespace std;
bool arr[810][810];
string ma[810];
long long H, W;
long long hi = LLONG_MAX / 2, wi = hi, hx = 0, wx = 0;
int main() {
  long long K, a, b, c;
  cin >> H >> W >> K;
  for (int i = 0; i < H; i++) cin >> ma[i];
  for (int i = 0; i < H; i++) {
    for (int j = 0; j < W; j++) {
      if (ma[i][j] == 'S') {
        a = i, b = j;
        break;
      }
    }
  }
  queue<pair<pair<long long, long long>, long long>> Q;
  Q.push({{a, b}, K});
  while (!Q.empty()) {
    tie(a, b) = Q.front().first;
    Q.pop();
    if (ma[a][b] == '#') {
      continue;
    }
    if (a == 0 || b == 0 || a == H - 1 || b == W - 1) {
      cout << 1 << endl;
      return 0;
    }
    if (arr[a][b]) continue;
    arr[a][b] = 1;
    hi = min(hi, a);
    wi = min(wi, b);
    hx = max(hx, a);
    wx = max(wx, b);
    if (Q.front().second < 1) continue;
    Q.push({{a - 1, b}, Q.front().second - 1});
    Q.push({{a + 1, b}, Q.front().second - 1});
    Q.push({{a, b - 1}, Q.front().second - 1});
    Q.push({{a, b + 1}, Q.front().second - 1});
  }
  hi = min(hi, H - hx - 1);
  wi = min(wi, W - wx - 1);
  c = min(hi, wi);
  cout << (c - 1) / K + 2 << endl;
}
