#include<bits/stdc++.h>
#define fastio ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define ll long long
#define pii pair<int,int>
#define pill pair<int,ll>
#define pll pair<ll,ll>
#define pb push_back
#define fi first
#define se second
#define ff fi.fi
#define fs fi.se
#define sf se.fi
#define ss se.se
#define MASK(x) (((1)<<(x))-1)
#define getbit(x,k) (((x)>>(k))&1)
using namespace std;
const int maxn=1e3+50,mod=1e9+7;
const ll inf=0x3f3f3f3f3f3f3f3f;
int n,m,k;
char A[maxn][maxn],B[maxn][maxn];
int xs,ys,xst,yst,xen,yen;
int tim[maxn][maxn];
int dx[]={0,0,-1,1},dy[]={1,-1,0,0};
int d[maxn][maxn];
void bfs01()
{
memset(d,0x3f,sizeof d);
deque<pii>dQ;
dQ.push_front({xst,yst});
d[xst][yst]=0;
while(dQ.size())
{
pii u=dQ.front();dQ.pop_front();
for(int k=0;k<4;k++)
{
int nx=u.fi+dx[k],ny=u.se+dy[k];
if(nx<1 || nx>n || ny<1 || ny>m) continue;
int c=(B[nx][ny]=='S');
if(d[u.fi][u.se]+c<d[nx][ny])
{
d[nx][ny]=d[u.fi][u.se]+c;
if(c==0) dQ.push_front({nx,ny});
else dQ.push_back({nx,ny});
}
}
}
}
bool check(int t)
{
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
B[i][j]=A[i][j];
memset(tim,0,sizeof tim);
queue<pii>Q;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
if(B[i][j]=='S') Q.push({i,j}),tim[i][j]=1;
if(t)
{
while(Q.size())
{
pii u=Q.front();Q.pop();
B[u.fi][u.se]='S';
for(int k=0;k<4;k++)
{
int nx=u.fi+dx[k],ny=u.se+dy[k];
if(nx<1 || nx>n || ny<1 || ny>m) continue;
if(tim[nx][ny]) continue;
if(B[nx][ny]!='.') continue;
if(tim[u.fi][u.se]<t)
{
tim[nx][ny]=tim[u.fi][u.se]+1;
Q.push({nx,ny});
}
}
}
}
bfs01();
return d[xen][yen]<=k;
}
int main()
{
cin>>n>>m>>k;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
cin>>A[i][j];
if(A[i][j]=='H') xst=i,yst=j;
if(A[i][j]=='G') xen=i,yen=j;
}
int l=0,r=1e6,mid,ans=0;
while(l<=r)
{
mid=(l+r)/2;
if(check(mid)) l=mid+1,ans=mid;
else r=mid-1;
}
if(ans==1e6) ans=-1;
cout<<ans;
}
/*
5 5 1
H....
.....
.....
S....
....G
*/
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCiNkZWZpbmUgZmFzdGlvIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7Y2luLnRpZSgwKTtjb3V0LnRpZSgwKTsKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBwaWkgcGFpcjxpbnQsaW50PgojZGVmaW5lIHBpbGwgcGFpcjxpbnQsbGw+CiNkZWZpbmUgcGxsIHBhaXI8bGwsbGw+CiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBmZiBmaS5maQojZGVmaW5lIGZzIGZpLnNlCiNkZWZpbmUgc2Ygc2UuZmkKI2RlZmluZSBzcyBzZS5zZQojZGVmaW5lIE1BU0soeCkgKCgoMSk8PCh4KSktMSkKI2RlZmluZSBnZXRiaXQoeCxrKSAoKCh4KT4+KGspKSYxKQoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGludCBtYXhuPTFlMys1MCxtb2Q9MWU5Kzc7CmNvbnN0IGxsIGluZj0weDNmM2YzZjNmM2YzZjNmM2Y7CgppbnQgbixtLGs7CmNoYXIgQVttYXhuXVttYXhuXSxCW21heG5dW21heG5dOwppbnQgeHMseXMseHN0LHlzdCx4ZW4seWVuOwppbnQgdGltW21heG5dW21heG5dOwppbnQgZHhbXT17MCwwLC0xLDF9LGR5W109ezEsLTEsMCwwfTsKaW50IGRbbWF4bl1bbWF4bl07Cgp2b2lkIGJmczAxKCkKewogICAgbWVtc2V0KGQsMHgzZixzaXplb2YgZCk7CiAgICBkZXF1ZTxwaWk+ZFE7CiAgICBkUS5wdXNoX2Zyb250KHt4c3QseXN0fSk7CiAgICBkW3hzdF1beXN0XT0wOwogICAgd2hpbGUoZFEuc2l6ZSgpKQogICAgewogICAgICAgIHBpaSB1PWRRLmZyb250KCk7ZFEucG9wX2Zyb250KCk7CiAgICAgICAgZm9yKGludCBrPTA7azw0O2srKykKICAgICAgICB7CiAgICAgICAgICAgIGludCBueD11LmZpK2R4W2tdLG55PXUuc2UrZHlba107CiAgICAgICAgICAgIGlmKG54PDEgfHwgbng+biB8fCBueTwxIHx8IG55Pm0pIGNvbnRpbnVlOwogICAgICAgICAgICBpbnQgYz0oQltueF1bbnldPT0nUycpOwogICAgICAgICAgICBpZihkW3UuZmldW3Uuc2VdK2M8ZFtueF1bbnldKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBkW254XVtueV09ZFt1LmZpXVt1LnNlXStjOwogICAgICAgICAgICAgICAgaWYoYz09MCkgZFEucHVzaF9mcm9udCh7bngsbnl9KTsKICAgICAgICAgICAgICAgIGVsc2UgZFEucHVzaF9iYWNrKHtueCxueX0pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9CmJvb2wgY2hlY2soaW50IHQpCnsKICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKQogICAgICAgIGZvcihpbnQgaj0xO2o8PW07aisrKQogICAgICAgICAgICBCW2ldW2pdPUFbaV1bal07CiAgICBtZW1zZXQodGltLDAsc2l6ZW9mIHRpbSk7CiAgICBxdWV1ZTxwaWk+UTsKICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKQogICAgICAgIGZvcihpbnQgaj0xO2o8PW07aisrKQogICAgICAgICAgICBpZihCW2ldW2pdPT0nUycpIFEucHVzaCh7aSxqfSksdGltW2ldW2pdPTE7CiAgICBpZih0KQogICAgewogICAgICAgIHdoaWxlKFEuc2l6ZSgpKQogICAgICAgIHsKICAgICAgICAgICAgcGlpIHU9US5mcm9udCgpO1EucG9wKCk7CiAgICAgICAgICAgIEJbdS5maV1bdS5zZV09J1MnOwogICAgICAgICAgICBmb3IoaW50IGs9MDtrPDQ7aysrKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpbnQgbng9dS5maStkeFtrXSxueT11LnNlK2R5W2tdOwogICAgICAgICAgICAgICAgaWYobng8MSB8fCBueD5uIHx8IG55PDEgfHwgbnk+bSkgY29udGludWU7CiAgICAgICAgICAgICAgICBpZih0aW1bbnhdW255XSkgY29udGludWU7CiAgICAgICAgICAgICAgICBpZihCW254XVtueV0hPScuJykgY29udGludWU7CiAgICAgICAgICAgICAgICBpZih0aW1bdS5maV1bdS5zZV08dCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB0aW1bbnhdW255XT10aW1bdS5maV1bdS5zZV0rMTsKICAgICAgICAgICAgICAgICAgICBRLnB1c2goe254LG55fSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBiZnMwMSgpOwogICAgcmV0dXJuIGRbeGVuXVt5ZW5dPD1rOwp9CmludCBtYWluKCkKewogICAgY2luPj5uPj5tPj5rOwogICAgZm9yKGludCBpPTE7aTw9bjtpKyspCiAgICAgICAgZm9yKGludCBqPTE7ajw9bTtqKyspCiAgICAgICAgewogICAgICAgICAgICBjaW4+PkFbaV1bal07CiAgICAgICAgICAgIGlmKEFbaV1bal09PSdIJykgeHN0PWkseXN0PWo7CiAgICAgICAgICAgIGlmKEFbaV1bal09PSdHJykgeGVuPWkseWVuPWo7CiAgICAgICAgfQogICAgaW50IGw9MCxyPTFlNixtaWQsYW5zPTA7CiAgICB3aGlsZShsPD1yKQogICAgewogICAgICAgIG1pZD0obCtyKS8yOwogICAgICAgIGlmKGNoZWNrKG1pZCkpIGw9bWlkKzEsYW5zPW1pZDsKICAgICAgICBlbHNlIHI9bWlkLTE7CiAgICB9CiAgICBpZihhbnM9PTFlNikgYW5zPS0xOwogICAgY291dDw8YW5zOwp9Ci8qCjUgNSAxCkguLi4uCi4uLi4uCi4uLi4uClMuLi4uCi4uLi5HCiovCg==