#include <bits/stdc++.h>
auto& in = std::cin;
auto& out = std::cout;
int32_t H, W, K;
char map[1000][1000];
bool ok[1000][1000];
void func(int h, int w, int k) {
  if (h < 0 || H <= h || w < 0 || W <= w) {
    return;
  }
  if (k < 0) {
    return;
  }
  if (ok[h][w]) {
    return;
  }
  if (map[h][w] == '#') {
    return;
  }
  ok[h][w] = true;
  func(h - 1, w, k - 1);
  func(h + 1, w, k - 1);
  func(h, w - 1, k - 1);
  func(h, w + 1, k - 1);
}
int main() {
  using std::endl;
  in.sync_with_stdio(false);
  out.sync_with_stdio(false);
  in >> H >> W >> K;
  for (size_t i = 0; i < H; i++) {
    in >> map[i];
  }
  int sx, sy;
  for (size_t i = 0; i < H; i++) {
    for (size_t w = 0; w < W; w++) {
      if (map[i][w] == 'S') {
        sx = w;
        sy = i;
        map[i][w] = '.';
      }
    }
  }
  func(sy, sx, K);
  int res = H * W;
  for (int i = 0; i < H; i++) {
    for (int w = 0; w < W; w++) {
      if (ok[i][w]) {
        res = std::min(
            res, 1 + (std::min({i, H - i - 1, w, W - w - 1}) + K - 1) / K);
      }
    }
  }
  std::cout << res << std::endl;
  return 0;
}
