#include <bits/stdc++.h>
using namespace std;
int h, w, k;
char a[801][801];
bool vis[801][801];
pair<int, int> start;
int mini = 1600;
void dfs(int x, int y, int d) {
  vis[x][y] = 1;
  if (x == 0 || x == h - 1 || y == 0 || y == w - 1) {
    mini = 0;
    return;
  }
  if (mini > x) {
    mini = x;
  }
  if (mini > h - 1 - x) {
    mini = h - 1 - x;
  }
  if (mini > y) {
    mini = y;
  }
  if (mini > w - 1 - y) {
    mini = w - 1 - y;
  }
  if (d == k) {
    return;
  }
  if (!vis[x][y - 1] && a[x][y - 1] == '.') {
    dfs(x, y - 1, d + 1);
  }
  if (!vis[x + 1][y] && a[x + 1][y] == '.') {
    dfs(x + 1, y, d + 1);
  }
  if (!vis[x - 1][y] && a[x - 1][y] == '.') {
    dfs(x - 1, y, d + 1);
  }
  if (!vis[x][y + 1] && a[x][y + 1] == '.') {
    dfs(x, y + 1, d + 1);
  }
}
int main() {
  cin.tie(0);
  ios_base::sync_with_stdio(0);
  cin >> h >> w >> k;
  for (int i = 0; i < h; i++) {
    for (int j = 0; j < w; j++) {
      cin >> a[i][j];
      if (a[i][j] == 'S') {
        start.first = i;
        start.second = j;
      }
    }
  }
  dfs(start.first, start.second, 0);
  if (mini == 0) {
    cout << 1 << '\n';
    return 0;
  }
  int ans = 1;
  ans += (mini / k);
  mini = (mini % k);
  if (mini > 0) {
    ans++;
  }
  cout << ans << '\n';
  return 0;
}
