#include <bits/stdc++.h>
using namespace std;
long long dy[] = {0, 0, 1, -1, 0};
long long dx[] = {1, -1, 0, 0, 0};
long long h, w, k;
bool fin[800][800];
char a[800][800];
long long mini = 100000;
void walk(long long x, long long y, long long dis) {
  long long b = min(min(x, w - x - 1), min(y, h - y - 1));
  if (b < mini) {
    mini = b;
  }
  if (dis == k) return;
  for (int i = 0; i < (4); i++) {
    if (x + dx[i] >= 0 && x + dx[i] < w && y + dy[i] >= 0 && y + dy[i] < h &&
        a[y + dy[i]][x + dx[i]] == '.' && fin[y + dy[i]][x + dx[i]] == false) {
      fin[y + dy[i]][x + dx[i]] = true;
      walk(x + dx[i], y + dy[i], dis + 1);
    }
  }
}
int main() {
  scanf("%lld%lld%lld", &h, &w, &k);
  for (int i = 0; i < (h); i++) scanf("%s", &a[i][0]);
  bool z = false;
  for (int i = 0; i < (h); i++) {
    for (int j = 0; j < (w); j++)
      if (a[i][j] == 'S') {
        walk(j, i, 0);
        z = true;
        break;
      }
    if (z) break;
  }
  if (mini == 0)
    printf("1\n");
  else {
    printf("%lld\n", (mini + k - 1) / k + 1);
  }
  return 0;
}
