#include <bits/stdc++.h>

using namespace std;

const double eps = 1e-10;

const int N = 777;

char s[N][N];
double a[N][N];
double ans[N];
int who[N];
pair <int, int> go[N][N];

int main() {
  int h, w, k;
  scanf("%d %d %d", &h, &w, &k);
  for (int i = 0; i < h; i++) {
    scanf("%s", s[i]);
  }
  for (int i = 0; i < h; i++) {
    for (int j = 0; j < w; j++) {
      go[i][j] = make_pair(i, j);
    }
  }
  for (int i = 0; i < k; i++) {
    int a, b, c, d;
    scanf("%d %d %d %d", &a, &b, &c, &d);
    a--; b--;
    c--; d--;
    go[a][b] = make_pair(c, d);
    go[c][d] = make_pair(a, b);
  }
  for (int i = 0; i < h * w; i++) {
    a[i][i] = 1.0;
  }
  int start = -1;
  for (int i = 0; i < h; i++) {
    for (int j = 0; j < w; j++) {
      if (s[i][j] == '#' || s[i][j] == '*') {
        continue;
      }
      if (s[i][j] == 'A') {
        start = i * w + j;
      }
      if (s[i][j] == '%') {
        a[i * w + j][h * w] = 1.0;
        continue;
      }
      vector < pair <int, int> > z;
      for (int dx = -1; dx <= 1; dx++) {
        for (int dy = -1; dy <= 1; dy++) {
          if (dx * dx + dy * dy == 1) {
            int xk = i + dx;
            int yk = j + dy;
            if (xk >= 0 && yk >= 0 && xk < h && yk < w && s[xk][yk] != '#') {
              z.push_back(go[xk][yk]);
            }
          }
        }
      }
      if (z.empty()) {
        continue;
      }
      int sz = z.size();
      for (auto &p : z) {
        a[i * w + j][p.first * w + p.second] -= 1.0 / sz;
      }
    }
  }
  int n = h * w;
  int c = 0;
  for (int r = 0; r < n; r++) {
    who[r] = -1;
    while (c < n) {
      int id = r;
      for (int i = r; i < n; i++) {
        if (fabs(a[i][c]) > fabs(a[id][c])) {
          id = i;
        }
      }
      if (fabs(a[id][c]) < eps) {
        c++;
        continue;
      }
      for (int j = c; j <= n; j++) {
        swap(a[r][j], a[id][j]);
      }
      for (int i = r + 1; i < n; i++) {
        double coeff = a[i][c] / a[r][c];
        for (int j = c; j <= n; j++) {
          a[i][j] -= coeff * a[r][j];
        }
      }
      who[r] = c;
      break;
    }
  }
  for (int r = n - 1; r >= 0; r--) {
    int c = who[r];
    if (c == -1) {
      continue;
    }
    ans[c] = a[r][n] / a[r][c];
    for (int i = r - 1; i >= 0; i--) {
      a[i][n] -= a[i][c] * ans[c];
      a[i][c] = 0;
    }
  }
  printf("%.17f\n", ans[start]);
  return 0;
}