#!/bin/python3 from collections import deque import sys def findAlan(grid): for row in range(len(grid)): for col in range(len(grid[0])): if grid[row][col] == 'A': return row,col def probOfEscape(grid, tunnels): aRow, aCol = findAlan(grid) q = deque() q.append((aRow,aCol)) count = 0 exitsFound = 0 while len(q)!=0: aRow, aCol = q.popleft() poss = [] if aRow > 0: poss.append((aRow-1,aCol)) if aCol > 0: poss.append((aRow, aCol-1)) if aRow < len(grid): poss.append((aRow+1,aCol)) if aCol < len(grid[0]): poss.append((aRow, aCol+1)) for point in poss: count+=1 if grid[point[0]][point[1]] == '%': exitsFound+=1 if grid[point[0]][point[1]] == '0': if point in tunnels: q.append(tunnels[point]) return exitsFound/count n, m, k = input().strip().split(' ') n, m, k = [int(n), int(m), int(k)] grid = [] for a0 in range(n): row = input().strip() grid.append(row) tunnels = {} for a0 in range(k): i1, j1, i2, j2 = input().strip().split(' ') i1, j1, i2, j2 = [int(i1), int(j1), int(i2), int(j2)] tunnels[(i1,j1)] = (i2,j2) tunnels[(i2,j2)] = (i1,j1) res = probOfEscape(grid,tunnels) print(res)