#include #include #include #include using namespace std; const int MAXN = 55; const double INF = 10000000.0; const int dx[4] = {-1, 1, 0, 0}; const int dy[4] = {0, 0, -1, 1}; int n, m, k, sx, sy, tx, ty; char maze[MAXN][MAXN]; double dp[MAXN][MAXN][MAXN]; int main() { int T; scanf("%d", &T); while (T--) { scanf("%d%d%d", &n, &m, &k); for (int i = 0; i < n; i++) scanf("%s", maze[i]); scanf("%d%d%d%d", &sx, &sy, &tx, &ty); sx--; sy--; tx--; ty--; for (int x = 0; x < n; x++) for (int y = 0; y < m; y++) for (int z = 0; z <= k; z++) dp[x][y][z] = INF; dp[sx][sy][0] = 0.0; for (int z = 0; z < k; z++) for (int x = 0; x < n; x++) for (int y = 0; y < m; y++) { if (maze[x][y] != '#') for (int dir = 0; dir < 4; dir++) { int xx = x + dx[dir], yy = y + dy[dir]; if (0 <= xx && xx < n && 0 <= yy && yy < m && maze[xx][yy] != '#') { dp[xx][yy][z+1] = min(dp[xx][yy][z+1], dp[x][y][z] + 1.0 * abs(maze[xx][yy] - maze[x][y]) / (k - z)); } } } double ans = INF; for (int i = 0; i < k; i++) ans = min(ans, dp[tx][ty][i]); if (fabs(ans - INF) < 0.00001) printf("No Answer\n"); else printf("%.2f\n", ans); } return 0; }