#include using namespace std; #define rep(i,n) for(int i=0;i<(int)(n);++i) int H,W,M; string S[500]; int dp[10][500][500]; signed main(){ cin.tie(0)->sync_with_stdio(0); cin>>H>>W>>M; rep(i,H)cin>>S[i]; int sx=-1,sy=-1,tx=-1,ty=-1; rep(i,H)rep(j,W){ if(S[i][j]=='S'){ sx=i,sy=j; S[i][j]='.'; } if(S[i][j]=='G'){ tx=i,ty=j; S[i][j]='.'; } } constexpr int inf=1<<30; rep(k,M+1)rep(i,H)rep(j,W)dp[k][i][j]=inf; dp[0][sx][sy]=0; queue>que; que.push({0,sx,sy}); while(!que.empty()){ auto[k,x,y]=que.front(); que.pop(); int dx[]={1,0,-1,0},dy[]={0,1,0,-1}; rep(dir,4){ int xx=x+dx[dir],yy=y+dy[dir]; if(!(0<=xx&&xx