#include <bits/stdc++.h>
using namespace std;
const int INF = 10000000;
const int dx[4] = {1, 0, -1, 0};
const int dy[4] = {0, 1, 0, -1};
int d[803][803];
int main() {
  int h, w, k;
  cin >> h >> w >> k;
  string a[803];
  for (int i = 0; i < h; i++) {
    for (int j = 0; j < w; j++) cin >> a[i][j];
  }
  queue<pair<int, int> > que;
  for (int i = 0; i < h; i++) {
    for (int j = 0; j < w; j++) {
      if (a[i][j] == 'S')
        que.push(pair<int, int>(i, j));
      else
        d[i][j] = -1;
    }
  }
  int ans = INF;
  while (que.size()) {
    pair<int, int> p = que.front();
    que.pop();
    int x = p.first, y = p.second;
    for (int i = 0; i < 4; i++) {
      int u = x + dx[i], v = y + dy[i];
      if (u >= 0 && u < h && v >= 0 && v < w && a[u][v] != '#' &&
          d[u][v] == -1) {
        d[u][v] = d[x][y] + 1;
        que.push(pair<int, int>(u, v));
      }
    }
    if (d[x][y] <= k) {
      ans = min(ans, min(min(x + k - 1, y + k - 1),
                         min(h - x + k - 2, w - y + k - 2)) /
                             k +
                         1);
    }
  }
  cout << ans << endl;
}
