from collections import deque H, W, M = map(int, input().split()) S = [list(input()) for _ in range(H)] def code(s): return ord(s)-ord("a") def codeR(n): return chr(ord("a")+n) sh, sw = -1, -1 for i in range(H): for j in range(W): if S[i][j] == "S": sh, sw = i, j que = deque() que.append((sh, sw, 0)) visited = [[[-1]*W for _ in range(H)] for _ in range(M+1)] visited[0][sh][sw] = 0 direction = [(-1,0),(0,1),(1,0),(0,-1)] while que: h, w, k = que.popleft() if S[h][w] == "G": print(visited[k][h][w]) break for dh, dw in direction: nh, nw = h+dh, w+dw if 0<=nh