var h,w,k,i,j,min,hh,t,xx,yy:longint;
    s:ansistring;
    ww,p:array[0..801,0..801]of boolean;
    f:array[0..801,0..801]of longint;
    x,y:array[1..10000000]of longint;
begin
    readln(h,w,k);
    min:=maxlongint;
    fillchar(f,sizeof(f),$7f);
    for i:=1 to h do begin
        readln(s);
        for j:=1 to w do begin
            if s[j]<>'#' then p[i,j]:=true;
            if s[j]='S' then begin
                x[1]:=i;y[1]:=j;
                f[i,j]:=0;
                if i-1<min then min:=i-1;
                if h-i<min then min:=h-i;
                if j-1<min then min:=j-1;
                if w-j<min then min:=w-j;
            end;
        end;
    end;
    if min=0 then begin
        writeln(0);
        exit;
    end;
    hh:=1;t:=1;
    while hh<=t do begin
        xx:=x[hh];yy:=y[hh];
        if  (p[xx+1,yy])and(not ww[xx+1,yy])and(f[xx+1,yy]>f[xx,yy]+1) then begin
            inc(t);
            x[t]:=xx+1;
            y[t]:=yy;
            ww[xx+1,yy]:=true;
            f[xx+1,yy]:=f[xx,yy]+1;
            if h-xx-1<min then min:=h-xx-1;
        end;
        if  (p[xx-1,yy])and(not ww[xx-1,yy])and(f[xx-1,yy]>f[xx,yy]+1) then begin
            inc(t);
            x[t]:=xx-1;
            y[t]:=yy;
            ww[xx-1,yy]:=true;
            f[xx-1,yy]:=f[xx,yy]+1;
            if xx-2<min then min:=xx-2;
        end;
        if  (p[xx,yy+1])and(not ww[xx,yy+1])and(f[xx,yy]>f[xx,yy]+1) then begin
            inc(t);
            x[t]:=xx;
            y[t]:=yy+1;
            ww[xx,yy+1]:=true;
            f[xx,yy+1]:=f[xx,yy]+1;
            if w-yy-1<min then min:=w-yy-1;
        end;
        if  (p[xx,yy-1])and(not ww[xx,yy-1])and(f[xx,yy-1]>f[xx,yy]+1) then begin
            inc(t);
            x[t]:=xx;
            y[t]:=yy-1;
            ww[xx,yy-1]:=true;
            f[xx,yy-1]:=f[xx,yy]+1;
            if yy-2<min then min:=yy-2;
        end;
        ww[xx,yy]:=false;
        inc(hh);
        while (hh<=t)and(f[x[hh],y[hh]]=k) do inc(hh);
    end;
    if min mod k<>0 then writeln(2+(min div k)) else writeln(1+(min div k));
end.