#include <bits/stdc++.h>
using namespace std;
const int dx[4] = {1, 0, -1, 0};
const int dy[4] = {0, 1, 0, -1};
int H, W;
double K;
char m[805][805];
bool v[805][805];
int sx, sy;
int mini = ~0u >> 1;
void dfs(int x, int y, int dep) {
  if (dep >= K) return;
  v[x][y] = true;
  for (int i = 0; i != 4; ++i) {
    int tx = x + dx[i], ty = y + dy[i];
    if (!v[tx][ty] && m[tx][ty] != '#') {
      dfs(tx, ty, dep + 1);
    }
  }
  if (ceil((x - 1) / K) < mini) mini = ceil((x - 1) / K);
  if (ceil((y - 1) / K) < mini) mini = ceil((y - 1) / K);
  if (ceil((H - x) / K) < mini) mini = ceil((H - x) / K);
  if (ceil((W - y) / K) < mini) mini = ceil((W - y) / K);
}
int main() {
  memset(m, '#', sizeof m);
  scanf("%d%d%lf", &H, &W, &K);
  for (int i = 1; i <= H; ++i)
    for (int j = 1; j <= W; ++j) {
      while (isspace(m[i][j] = getchar()))
        ;
      if (m[i][j] == 'S') sx = i, sy = j;
    }
  dfs(sx, sy, 0);
  printf("%d\n", mini + 1);
}
