#include <bits/stdc++.h>
using namespace std;
int read() {
  int f = 1, s = 0;
  char ch = getchar();
  while (ch < '0' || ch > '9') {
    if (ch == '-') f = -1;
    ch = getchar();
  }
  while (ch >= '0' && ch <= '9') s = s * 10 + ch - '0', ch = getchar();
  return f * s;
}
int n, m, k, dx[4] = {0, 0, -1, 1}, dy[4] = {1, -1, 0, 0};
int F(int x, int y) {
  return min(min((x - 1 + k - 1) / k, (y - 1 + k - 1) / k),
             min((n - x + k - 1) / k, (m - y + k - 1) / k));
}
int ans = 20021225;
bool vis[810][810];
void dfs(int x, int y, int s) {
  if (s > k || vis[x][y]) return;
  vis[x][y] = 1;
  s++;
  ans = min(ans, F(x, y) + 1);
  for (int i = 0; i < 4; i++) {
    int nx = x + dx[i], ny = y + dy[i];
    if (!nx || !ny || nx > n || ny > m) continue;
    dfs(nx, ny, s);
  }
}
char ch[810];
int main() {
  n = read(), m = read(), k = read();
  int x, y;
  for (int i = 1; i <= n; i++) {
    scanf("%s", ch + 1);
    for (int j = 1; j <= m; j++)
      if (ch[j] == '#')
        vis[i][j] = 1;
      else if (ch[j] == 'S')
        x = i, y = j;
  }
  dfs(x, y, 0);
  printf("%d\n", ans);
  return 0;
}
