#include <bits/stdc++.h>
using namespace std;
inline int read() {
  int sum = 0;
  char c = getchar();
  bool f = 0;
  while (c < '0' || c > '9') {
    if (c == '-') f = 1;
    c = getchar();
  }
  while (c >= '0' && c <= '9') {
    sum = sum * 10 + c - '0';
    c = getchar();
  }
  if (f) return -sum;
  return sum;
}
const int N = 805;
int n, m, K, qx[N * N], qy[N * N];
const int mx[] = {1, -1, 0, 0};
const int my[] = {0, 0, 1, -1};
int d[N][N];
char s[N][N];
inline void BFS(int sx, int sy) {
  int i, j, x, y, xx, yy, h = 1, t = 1, ans = 1e9;
  qx[1] = sx;
  qy[1] = sy;
  d[sx][sy] = 1;
  while (h <= t) {
    x = qx[h];
    y = qy[h++];
    if (d[x][y] > K) break;
    for (i = 0; i <= 3; i++) {
      xx = x + mx[i];
      yy = y + my[i];
      if (xx > n || xx < 1 || yy > m || yy < 1 || s[xx][yy] == '#' || d[xx][yy])
        continue;
      d[xx][yy] = d[x][y] + 1;
      qx[++t] = xx;
      qy[t] = yy;
    }
  }
  for (i = 1; i <= t; i++) {
    x = qx[i];
    y = qy[i];
    j = min(min(x - 1, n - x), min(y - 1, m - y));
    ans = min(ans, j);
  }
  printf("%d", (j / K) + (j % K != 0) + 1);
}
int main() {
  int i, j;
  n = read();
  m = read();
  K = read();
  for (i = 1; i <= n; i++) scanf("%s", s[i] + 1);
  for (i = 1; i <= n; i++)
    for (j = 1; j <= m; j++)
      if (s[i][j] == 'S') {
        BFS(i, j);
        break;
      }
  return 0;
}
